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

Bu konuyu okuyanlar

xloer00

Asistan
Katılım
14 Kasım 2018
Mesajlar
242
Reaksiyon puanı
20
Puanları
18
Yaş
26
#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

Müdavim
Emektar
Katılım
22 Nisan 2017
Mesajlar
25,734
Çözümler
8
Reaksiyon puanı
24,982
Puanları
113
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.
 

xloer00

Asistan
Katılım
14 Kasım 2018
Mesajlar
242
Reaksiyon puanı
20
Puanları
18
Yaş
26
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

Müdavim
Emektar
Katılım
22 Nisan 2017
Mesajlar
25,734
Çözümler
8
Reaksiyon puanı
24,982
Puanları
113
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.
 

xloer00

Asistan
Katılım
14 Kasım 2018
Mesajlar
242
Reaksiyon puanı
20
Puanları
18
Yaş
26
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 Aralık 2008
Mesajlar
346
Reaksiyon puanı
112
Puanları
43
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
 

xloer00

Asistan
Katılım
14 Kasım 2018
Mesajlar
242
Reaksiyon puanı
20
Puanları
18
Yaş
26
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 Aralık 2008
Mesajlar
346
Reaksiyon puanı
112
Puanları
43
@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
 

xloer00

Asistan
Katılım
14 Kasım 2018
Mesajlar
242
Reaksiyon puanı
20
Puanları
18
Yaş
26
@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