ödevim var yardımıncı olurmusunuz sonsuz döngü durdurma

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


xloer041

Üyecik
Katılım
14 Kas 2018
Mesajlar
78
Puanları
8
#include<stdio.h>
int main()
{
int sayi;
do
{
printf("sayi giriniz:");
scanf("%d",&sayi);
printf("%d'nin 2 kati: %d \n", sayi, sayi*2);

}

while(sayi!= -5);
printf("negatif sayi giriniz. program sonlandi...");



return 0 ;



}






bu sonsuz döngü sadece -5 yazınca duruyor.
bunun aynısını for ve if kullanrak yapmam gerekiyor.
yardımcı olur musunuz?
işin içinden çıkamadım.
Mesaj otomatik birleştirildi:

#include<stdio.h>
int main()
{
int i=1;
for(i=1; i<=500 ;i++)
{
printf("sayi giriniz:");
scanf("%d",&i);
printf("%d'nin 2 kati: %d \n",i,i*2);
}



}

bunu yapınca 500 e kadar girdiğim sayılar döngüye giriyor ama nasıl durduracağım bunu
 

Görkem Say

Arise, Arise Riders of Theoden! Ride now! Death!
Yönetici
Moderatör
Katılım
22 Nis 2017
Mesajlar
12,223
Puanları
113
Konum
Laurelindórinan
For ile sıfırdan başlatıp kullanıcının istediği bir değere kadar saydıracaksın. For döngüsünün içinde de if ile eğer -5 yazılırsa yukarıdaki gibi durduracaksın bu kadar.
 

xloer041

Üyecik
Katılım
14 Kas 2018
Mesajlar
78
Puanları
8
For ile sıfırdan başlatıp kullanıcının istediği bir değere kadar saydıracaksın. For döngüsünün içinde de if ile eğer -5 yazılırsa yukarıdaki gibi durduracaksın bu kadar.
musaitseniz örnek yağabilirmiziniz 0dan nasıl başlatacağım
if yazınca çalıştıramıyorum hata oluyor
 

Görkem Say

Arise, Arise Riders of Theoden! Ride now! Death!
Yönetici
Moderatör
Katılım
22 Nis 2017
Mesajlar
12,223
Puanları
113
Konum
Laurelindórinan
Kullanıcının girdiği değere kadar sırayla mı sayacak peki? 1, 2, 3, 4... gibi. Çünkü bu durumda 0'dan başlayıp atıyorum 500'e kadar sayarken -5 gelme olasılığı yok. Yazmak istediğin şeyi biraz daha açabilir misin? Şuan pek müsait değilim ama bakabildiğim kadar yaparım.
 

xloer041

Üyecik
Katılım
14 Kas 2018
Mesajlar
78
Puanları
8
Kullanıcının girdiği değere kadar sırayla mı sayacak peki? 1, 2, 3, 4... gibi. Çünkü bu durumda 0'dan başlayıp atıyorum 500'e kadar sayarken -5 gelme olasılığı yok. Yazmak istediğin şeyi biraz daha açabilir misin? Şuan pek müsait değilim ama bakabildiğim kadar yaparım.
tabiki
Kullanıcının girdiği değere kadar sırayla mı sayacak peki? 1, 2, 3, 4... gibi. Çünkü bu durumda 0'dan başlayıp atıyorum 500'e kadar sayarken -5 gelme olasılığı yok. Yazmak istediğin şeyi biraz daha açabilir misin? Şuan pek müsait değilim ama bakabildiğim kadar yaparım.
pozitif negatif sayılar gireceğim sonsuz kere bu sayının 2 katı budur.
fakat -5 girdiğimde duracak hata vericek ekrandada -5 girdininz program sonlanmıştır. yazıcak bunun gibi
Mesaj otomatik birleştirildi:

Kullanıcının girdiği değere kadar sırayla mı sayacak peki? 1, 2, 3, 4... gibi. Çünkü bu durumda 0'dan başlayıp atıyorum 500'e kadar sayarken -5 gelme olasılığı yok. Yazmak istediğin şeyi biraz daha açabilir misin? Şuan pek müsait değilim ama bakabildiğim kadar yaparım.
500 değerini ben verdim ama sonsuz değer girmem gerekiyor 5-7 basamaklıyıda hesaplamalı
 

ertan2002

Asistan
Katılım
9 Ara 2008
Mesajlar
247
Puanları
28
for döngüsünün icinde sart kismi var, orada -5 olunca cikarttirabilirdin (eksi saydirarak) ancak senin yapmak istedigin kullanicidan aldigin degere göre döngüden cikmak. O sebeple tüm döngüler icin gecerli olan "break" anahtar kelimesini kullanabilirsin.

C:
if(kullanicidanAldiginDeger == -5)
{
  printf("döngü sonlanmistir");
   break; //döngüden cik
}
bunu kendine göre düzenleyip döngünün icine eklersen, kullanicidanAldigin deger -5 ise döngüden cikar. Tabi bunu kullanicidan degeri aldiktan sonra eklemen lazim yani scanf den sonra..


Sonsuz döngü yapmak icin ise sarti kaldirip yapabilirsin.. örnek

C:
for(; ;)

{

 //kodun ....

}
bu arada kodunda bir yanlislik var. Döngü icinde kullandigin i degiskenini scanf icin de kullanmissin. Onun icin baska bir degisken tanimla.

kolay gelsin
 

xloer041

Üyecik
Katılım
14 Kas 2018
Mesajlar
78
Puanları
8
for döngüsünün icinde sart kismi var, orada -5 olunca cikarttirabilirdin (eksi saydirarak) ancak senin yapmak istedigin kullanicidan aldigin degere göre döngüden cikmak. O sebeple tüm döngüler icin gecerli olan "break" anahtar kelimesini kullanabilirsin.

C:
if(kullanicidanAldiginDeger == -5)
{
  printf("döngü sonlanmistir");
   break; //döngüden cik
}
bunu kendine göre düzenleyip döngünün icine eklersen, kullanicidanAldigin deger -5 ise döngüden cikar. Tabi bunu kullanicidan degeri aldiktan sonra eklemen lazim yani scanf den sonra..


Sonsuz döngü yapmak icin ise sarti kaldirip yapabilirsin.. örnek

C:
for(; ;)

{

//kodun ....

}
bu arada kodunda bir yanlislik var. Döngü icinde kullandigin i degiskenini scanf icin de kullanmissin. Onun icin baska bir degisken tanimla.

kolay gelsin
C:
#include<stdio.h>
int main()
{
int i=1;
for(; ;)
{
printf("sayi giriniz:");
scanf("%d",&i);
printf("%d'nin 2 kati: %d \n",i,i*2);
    
}
if(i==-5)
{
 printf("döngü sonlanmistir");
 
  
}
 return 0;
}
Mesaj otomatik birleştirildi:

C:
#include<stdio.h>
int main()
{
int i=1;
for(; ;)
{
printf("sayi giriniz:");
scanf("%d",&i);
printf("%d'nin 2 kati: %d \n",i,i*2);
   
}
if(i==-5)
{
printf("döngü sonlanmistir");

 
}
return 0;
}
döngüye giriyor fakat -5 i algılamıyor ayrıca break yazıncada hata veriyor
C:
#include<stdio.h>
int main()
{
int i=1;
for(; ;)
{
printf("sayi giriniz:");
scanf("%d",&i);
printf("%d'nin 2 kati: %d \n",i,i*2);
    
}
if(i==-5)
{
 printf("döngü sonlanmistir");
 break;
  
}
 return 0;
}
 

ertan2002

Asistan
Katılım
9 Ara 2008
Mesajlar
247
Puanları
28
@xloer041 yapmissin hocam iste :) tek sorunun if kontrolünü döngünün icine almamis olman.. break komutu döngüyü kirar ama sen döngü disina yazmissin. Mesajimi dikkatli okusaydin scanf den sonra yazdigimi görürdün.. Neyse su sekil düzenlersen calisir

C:
int main()
{
  int i = 1;
  for (;;) {
    printf("sayi giriniz:");
    scanf("%d", & i);
    if (i == -5) {
      printf("döngü sonlanmistir");
      break;
    }
   
    printf("%d'nin 2 kati: %d \n", i, i * 2);
  }
  return 0;
}
kolay gelsin
 

xloer041

Üyecik
Katılım
14 Kas 2018
Mesajlar
78
Puanları
8
@xloer041 yapmissin hocam iste :) tek sorunun if kontrolünü döngünün icine almamis olman.. break komutu döngüyü kirar ama sen döngü disina yazmissin. Mesajimi dikkatli okusaydin scanf den sonra yazdigimi görürdün.. Neyse su sekil düzenlersen calisir

C:
int main()
{
  int i = 1;
  for (;;) {
    printf("sayi giriniz:");
    scanf("%d", & i);
    if (i == -5) {
      printf("döngü sonlanmistir");
      break;
    }
  
    printf("%d'nin 2 kati: %d \n", i, i * 2);
  }
  return 0;
}
kolay gelsin
çok teşekkürler çalıştı.
 
Üst
stat counter