arrays-strings Flashcards
dizi tanımlama ve ilk değer atama
int x[] = {1,2,3,4,5,6,7,8,9,10};
int y[10] = {0};
int z[10];
int i; for (i = 0; i<10 ; i++) { z[i] = 0; } for (i = 0; i<10 ; i++) { printf("x: %d, y: %d, z: %d",x[i],y[i],z[i]); }
dizi elemanlarını toplama
int x[] = {1,2,3,4,5,6,7,8,9,10};
int i;
int toplam = 0;
for (i = 0; i<10 ; i++) { toplam += x[i]; } printf("dizi elemanlari toplami: %d",toplam);
dizi elemanlarını kullanıcıdan alma
????
dizi uzunluğu(eleman sayısı) bulma
int dizi[] = {6,2,4,6,8,10};
int elemanSayisi = sizeof(dizi) / sizeof(dizi[0]);
printf(“%d “,elemanSayisi);
dizi elemanları sıralama - bubble sort
int a[10] = {2,6,4,8,10,12,89,68,45,37};
printf(“Orijinal siradaki dizi elemanlari \n”);
int i; for (i = 0; i < 10; i++) { printf("%4d",a[i]); } int pass; for (pass = 1; pass < 10; pass++) { for (i = 0; i < 10 - 1; i++) { if(a[i] > a[i + 1]){ int hold = a[i]; a[i] = a[i + 1]; a[i + 1] = hold; } } } printf("\n Artan siradaki dizi elemanlari \n"); for (i = 0; i < 10; i++) { printf("%4d",a[i]); }
kullanıcının girdiği sayıları girme sırasının tersi yönde yazdır
int N = 10;
int x[N];
int i; for (i = 0; i < N; i++) { printf("Dizinin %d. elemani girin: ", i+1); scanf("%d",&x[i]); } for (i = N-1; i >= 0; i--) { printf("%d ",x[i]); }
Bir sınıftaki öğrencilerin 0 ile 100 arasında almış olduğu notlar
aşağıdaki dizi ile temsil edilmektedir:
int notlar[] = {78, 92, 65, 88, 75, 61, 90, 85, 77, 80, 95, 72, 87, 69, 84,
73, 98, 66, 81, 70};
1. Bu dizide kaç öğrencinin notu bulunmaktadır? (dizinin uzunluğunu
nedir?)
2. Sınıfın not ortalaması nedir?
3. En yüksek ve en düşük not kaçtır?
4. Sınıfta 85-100 arasında not alan kaç kişi vardır?
int notlar[] = {78, 92, 65, 88, 75, 61, 90, 85, 77, 80, 95, 72, 87, 69, 84,73, 98, 66, 81, 70};
int toplam = 0;
int uzunluk = sizeof(notlar)/sizeof(notlar[0]);
int max_not = notlar[0];
int min_not = notlar[0];
int yuksek_notlu_ogr_sayisi = 0;
int i; for (i = 0; i < uzunluk; i++) { toplam = toplam + notlar[i]; if (notlar[i] > max_not) { max_not = notlar[i]; } if (notlar[i] < min_not) { min_not = notlar[i]; } if(notlar[i] >= 85 && notlar[i] <= 100){ yuksek_notlu_ogr_sayisi++; } } float ortalama = (float)toplam/uzunluk; printf("Bu dizide %d ogrenci notu var. \n",uzunluk); printf("Sinif ortalaması: %.2f\n",ortalama); printf("En yuksek not: %d, En dusuk not: %d\n",max_not,min_not); printf("Notu 85-100 arası ogr sayisi: %d",yuksek_notlu_ogr_sayisi);
(AYNI SORU)kullanıcı dizi boyutu belirleyecek
int uzunluk;
printf(“Kac ogrencinin notunu gireceksiniz? “);
scanf(“%d”, &uzunluk);
int notlar[uzunluk]; int toplam = 0; int yuksek_notlu_ogrenci_sayisi = 0; int i; for (i = 0; i < uzunluk; i++) { printf("Lutfen %d. ogrencinin notunu girin (tam sayi): ", i + 1); scanf("%d", ¬lar[i]); toplam += notlar[i]; } // end for int uzunluk2 = sizeof(notlar) / sizeof(notlar[0]); int max_not = notlar[0]; int min_not = notlar[0]; for (i = 0; i < uzunluk; i++) { if (notlar[i] > max_not) { max_not = notlar[i]; } if (notlar[i] < min_not) { min_not = notlar[i]; } if (notlar[i] >= 85 && notlar[i] <= 100) { yuksek_notlu_ogrenci_sayisi++; } } // end for float ortalama = (float)toplam / uzunluk; printf("1) Bu dizide %d ogrencinin notu bulunmaktadir.\n", uzunluk); printf("2) Sinifin not ortalamasi: %.2f\n", ortalama); printf("3) En yuksek not: %d, en dusuk not: %d\n", max_not, min_not); printf("4) Notu 85-100 arasinda yer alan ogrenci sayisi: %d \n", yuksek_notlu_ogrenci_sayisi);
string oluşturma
include <string.h></string.h>
char s[5] = “Selam”;
printf(“%s”,s);
scanf ile kullanıcıdan karakter dizesi alma
char str[6];
printf(“En fazla 6 harflik bir kelime girin: “);
scanf(“%s”,str);
scanf ile string okumak - scanf(“%[^\n]”, str)
char str[10];
printf(“Bir cumle giriniz: “);
scanf(“[^\n]”, str);
string için karakter sınırı koymak
char str[5];
printf(“Bir kelime gir: “);
scanf(“%5s”,str);
printf("kelime: %s ",str);
strlen(): karakter dizisinin uzunluğunu
hesaplama
char str[] = “BIL 141”;
int uzunluk = strlen(str);
printf(“Karakter dizi uzunlugu: %d”,uzunluk);
strcpy() ve strcat(): bir karakter dizisini
diğerine kopyalama ve ekleme
char hedef[50] = “141”;
char kaynak[] = “BIL”;
strcpy(hedef, kaynak);
printf(“Kopyalanan: %s”,hedef);
strcat(hedef, “Dersi”);
printf(“Eklenme sonrası: %s”,hedef);
strcmp(): iki karakter dizisini karşılaştırma
char str1[] = “BIL 141”;
char str2[] = “BIL 141”;
char str3[] = “BIL”;
int sonuc_1_2 = strcmp(str1, str2); // sonucu dˆnd¸r¸r int sonuc_1_3 = strcmp(str1, str3); if (sonuc_1_2 == 0) printf("Iki karakter dizisi esittir. (%s, %s)\n", str1, str2); else printf("Iki karakter dizisi esit degildir. (%s, %s)\n", str1, str2); if (sonuc_1_3 == 0) printf("Iki karakter dizisi esittir. (%s, %s)\n", str1, str3); else printf("Iki karakter dizisi esit degildir. (%s, %s)\n", str1, str3);