1'den 20'ye kadar sayıları yazdır ama 16 ile 20 arasındakileri atla (nerede hata yapmışım?)

#include <iostream>
#include <string>
using namespace std;

main(){
       int sayi, cikis;
       
       for(sayi=1; sayi<=20; sayi++){
                   
                   
                   if(16<sayi<20){
                                  continue;
                                  }
                                  cout << sayi << endl;
                   }
       cin >> cikis;
       }

Programı derleyip çalıştırınca boş ekran çıkıyor. Hatam nerede acaba, yardımcı olur musunuz?

#include <stdio.h>

int main(){
	
	
	for(int i = 1;i <= 20;i++){
		
		if(16 < i){
			if(i < 20){
				continue;
			}			
		}
		
		printf("%d\n",i);
        
	}
        return 0;
}

Ben C ile böyle yazdım ama C++ bilmiyorum düzenliyebilirsiniz.

Output;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
20

Bu arada main() diye bir tanımlama C dilinde yoktur main bir şey döndürmeyecekse void eğer bir sayı döndürecekse int yapılır sayı döndürülmesinin sebebi programın doğru çalışıp çalışmadığıdır return 0 derseniz eax registerine 0 atılır ve program doğru çalıştığı kanıtlanır…

1 Beğeni

Hocam sorun ide’den mi bilmiyorum, cout satırını bir satır aşağıya ve sola alınca düzgün çalıştı.

Teşekkürler hocam. Bir de rica etsem bir soru daha sorabilir miyim?

   getch();
   return 0;   

program sonuna bunu yazıp çalıştırınca programı istediğim oluyor esasında ama programın en son satırında 24564 gibi böyle bir sayı çıkıyor. Sebebi nedir acaba?

getch() fonksiyonu klavyeden bir değer okur mesela programınızın hemen kapanmasını istemiyorsunuz analiz yapacaksınız .exe diyelim dosya getch() eklerseniz klavyeden bir değer okuyana kadar kapanmaz.
Bazen programlar çalışır ama içerisinde mantık hatası oluşur eğer böyle saçma sayılar görüyorsanız 24564 -169423 gibi sayılar programınızda mantık hatası vardır programın çalışmasına engel değil ama bir yer de bug var diyebiliriz.

Mesela şöyle bir kod olduğunu varsayalım değişkenlerin tanımlı olduğunu düşünün.

```
  cout << "Please enter an integer value: ";
  cin >> i;
```

şimdi aslında cout burada verilen değeri bastırdıktan sonra hiç bir şey yapmaz cin ise aslında bastırılan değerden sonra cursorun yanıp söndüğünü görürsünüz aslında değeri alan cin dir cout sadece kullanıcının ne gireceğini bilmesidir siz bir değer girdiğinizde bu değer direk >> dan sonra belli ettiğiniz değere gider şimdi sizin kodunuzda şurayı inceliyelim.

cin >> cikis;

Şimdi program sonlandığında cursorun yanıp söndüğünü görürsünüz oda buradaki cin sayesinde ve belirtmiş olduğunuz cikis bir integer değer tutuyor eğer integer değerden farklı bir şey girmeye çalışırsanız yine böyle bir sorunla karşılaşabilirsiniz.

Burası Çok önemli;

Bir de eklemek gerekirse hangi compileri kullanıyorsunuz bazı compilerlar main() ’ e izin veriyor ama return 0 ekliyecekseniz int main() yapmalısınız buda yine o sayıyı vermeye sebep olur :slight_smile:

1 Beğeni

Bu sihirli <> operatorleri C’de (Python disinda hic bir dilde) yok. if ((16 < sayi) && (sayi < 20)) olacak. Okunakli olmasi acisindan (sayi > 16 && sayi < 20) de yapilabilir.

Bu arada IDE’nin (hatta compiler’inin) sana bir uyari vermesi gerekirdi. Vermiyorsa butun uyarilari, kod kontrollerini ac. Veriyorsa dikkate al.

Uyari vermesi gereken baska bir satir daha. @Asosyal_Futbolcu yazmis, int main olacak. main void donduremez.

getch bir C (veya C++) fonksiyonu degil. getc veya getchar fonksiyonlarini kullanmalisin.

1 Beğeni

hocam veya || operatörü kullanılabilir de bitwiselere hiç girmedim elinize sağlık açıklamışsınız :slight_smile:

&& ve || bitwise degil, logical. & ve | bitwise.

Tamamdır hocam ben de daha C ye yeni başlamış bulunmaktayım 2 3 gün oldu :smiley:

:slight_smile: Kolay gelsin

Bi de OP’ye diyecektim aslinda, unuttum. Herkes icin gecerli ama:

Gozunuzu seveyim su kodlarinizi duzgun formatlayin. :woozy_face: IDE kullaniyorsaniz mutlaka vardir auto-format; hic olmadi ona yaptirin.

Yamuk yumuk kod bloklariyla nasil anliyorsunuz programin ne yaptigini, hayret ediyorum. :thinking:

Vallahi :slight_smile: { } koyduktan sonra yazıyorum ben içeriye o yüzden sıkıntı çıkmıyo ya kendim anlıyorum :))

dev c++'da var mıdır böyle bir özellik