Klavyeden -1 girilinceye kadar yazılan sayıların ortalamasını alan program

Yazdığım kodlar aşağıda, fakat kodlar sanki biraz uzun gibi geldi kontrol edip gerekli düzeltmeleri bana söylerseniz çok iyi olur.




#include <stdio.h>



int main(int argc, const char * argv[])

{

int sayi,secim,secim2;



printf("Bir sayi giriniz: ");

scanf("%d", &sayi);

if(sayi%2==0)

{

printf("%d sayısı çift. \n" ,sayi);

}



else

{

printf("%d sayısı tek. \n", sayi);

}



printf("Tekrar çalışsın mı? (1:Evet, Diğer:Hayır)");

scanf("%d", &secim);

secim2=1;



while (secim2!=0)

{

switch(secim)

{

case 1:

{

printf("Bir sayi giriniz: ");

scanf("%d", &sayi);

if(sayi%2==0)

{

printf("%d sayısı çift. \n" ,sayi);

}



else

{

printf("%d sayısı tek. \n", sayi);

}

printf("Tekrar çalışsın mı? (1:Evet, Diğer:Hayır)");

scanf("%d", &secim);

break;

}

default:

{

printf("Program bitti... \n\n\n");

secim2=0;

}

}

}



return 0;

}
 
Kodunuz çalışır eminim ama biraz kalabalıktı :) Sonsuz döngü ( while(true) bloğu) kullanımı ile daha okunaklı bir kod elde edebildik. // ile başlayan cümleler yorum satırı. C'de yorum satırları farklı ifade ediliyor olabilir bilemiyorum.
Kod:
//Kullanıcı tarafından girilen sayıların tek yada çift oldukları bilgisini ekrana yazdıran program
#include <stdio.h>

int main(int argc, const char * argv[])
{
int sayi,secim;

//Kullanıcı secim değişkenine 1 haricinde bir değer girene kadar çalışacak sonsuz döngü
while(true)
{
printf("Bir sayi  giriniz:");
scanf("%d", &sayi);
//if ten sonra çalışacak sadece 1 tane satır var ise süslü parantezleri ( { ve } ) eğer hata almayacaksanız kaldırın bence.
//Kodunuz daha okunaklı olur.Tercih sizin.
if(sayi%2==0)
{
printf("%d sayısı çift. \n" ,sayi);
}
else
{
printf("%d sayısı tek. \n", sayi);
}
printf("Tekrar çalışsın mı? (1:Evet, Diğer:Hayır)");
scanf("%d", &secim);
//Kullanıcı 1 den farklı bir değer girerse sonsuz döngüyü kırıp çıkacak.
if(secim!=1)
break;
}

printf("Program bitti... \n\n\n");

return 0;

}
 
Son düzenleme:
Kodunuz çalışır eminim ama biraz kalabalıktı :) Sonsuz döngü ( while(true) bloğu) kullanımı ile daha okunaklı bir kod elde edebildik. // ile başlayan cümleler yorum satırı. C'de yorum satırları farklı ifade ediliyor olabilir bilemiyorum.
Kod:
//Kullanıcı tarafından girilen sayıların tek yada çift oldukları bilgisini ekrana yazdıran program
#include <stdio.h>

int main(int argc, const char * argv[])
{
int sayi,secim;

//Kullanıcı secim değişkenine 1 haricinde bir değer girene kadar çalışacak sonsuz döngü
while(true)
{
printf("Bir sayi  giriniz:");
scanf("%d", &sayi);
//if ten sonra çalışacak sadece 1 tane satır var ise süslü parantezleri ( { ve } ) eğer hata almayacaksanız kaldırın bence.
//Kodunuz daha okunaklı olur.Tercih sizin.
if(sayi%2==0)
{
printf("%d sayısı çift. \n" ,sayi);
}
else
{
printf("%d sayısı tek. \n", sayi);
}
printf("Tekrar çalışsın mı? (1:Evet, Diğer:Hayır)");
scanf("%d", &secim);
//Kullanıcı 1 den farklı bir değer girerse sonsuz döngüyü kırıp çıkacak.
if(secim!=1)
break;
}

printf("Program bitti... \n\n\n");

return 0;

}

Kodda anlamadığım bir tek yer var. "program bitti..." kodundan önceki
if(secim!=1)
break;
kodu anlamadım.
 
Kod:
while(true)
{
//....
if(secim!=1)
break;
}

Secim değişkenine 1 haricinde bir değer girildiğinde artık "bir sayı giriniz" mesajı getirmek yerine while sonsuz döngüsünden çıkmalıyız. Sonsuz döngüden çıkmak için break; satırını kullanıp while bloğundan çıkıyoruz. Bu durumda
Kod:
 printf("Bir sayi giriniz:");    ...
satırları yerine while bloğu dışında yer alan
Kod:
printf("Program bitti... \n\n\n");
return 0;
kod satırları çalışacak ve program sona erecek.

Kod:
int sayi=5;
int adet=1;

while(true)
{
sayi=sayi+4;
adet++;
if(adet==3)
break;
}

Mesela bu kodda sayi değişkeninin son değeri ne olur sizce ?
 
Kod:
while(true)
{
//....
if(secim!=1)
break;
}

Secim değişkenine 1 haricinde bir değer girildiğinde artık "bir sayı giriniz" mesajı getirmek yerine while sonsuz döngüsünden çıkmalıyız. Sonsuz döngüden çıkmak için break; satırını kullanıp while bloğundan çıkıyoruz. Bu durumda
Kod:
 printf("Bir sayi giriniz:");    ...
satırları yerine while bloğu dışında yer alan
Kod:
printf("Program bitti... \n\n\n");
return 0;
kod satırları çalışacak ve program sona erecek.

Kod:
int sayi=5;
int adet=1;

while(true)
{
sayi=sayi+4;
adet++;
if(adet==3)
break;
}

Mesela bu kodda sayi değişkeninin son değeri ne olur sizce ?

Değer 13 olur bence hocam. :D
 
Uyarı! Bu konu 10 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı