Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
3612
Tıklama
0
Öne Çıkarma
C de Asal Sayı Problemi
İ
16 yıl
Er
Konu Sahibi

1- 100 arasındaki asal sayıları bulan programı yazamaya çalıştım.Ama 1 ile 100 arasındaki bütün sayıları yazıyor.Acaba nerede hata yaptım.Bilen var mıdır?

#include<stdio.h>
#include<conio.h>
main () {
int a=1,b=2,c;
while(a<=100){c=0;
while(b<a){
if(a%b==0) {c=1;}
b=b+1;}
if(c==0)
printf("%d sayisi asal sayidir.\n",a);
a=a+1;}
getch ();
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



B
16 yıl
Onbaşı

Öncelikle, böyle program yazılmaz. A, b, c isimli değişkenler programı okuyana hiç birşey anlatmaz, arada bir boşluk filan bırakılır ve deyimlerin seviyesine göre kod içeri tablanır (indent).

Kodu okuyabilmek için önce şu hale çevirmem gerekti:

 
#include<stdio.h>
#include<conio.h>
main () {

int a=1,b=2,c;
while(a<=100)
{
c=0;
while(b<a){

b = 2;

if(a%b==0)
{
c=1;
}
b=b+1;
}
if(c==0)
printf("%d sayisi asal sayidir.\n",a);
a=a+1;
}
getch ();
}


Bu hale çevirdikten sonra çok rahat bir şekilde cevap karşımızda, b değerini ilk haline getirmeyi unutmuşsun ( b = 2 ). Şu haliyle ilk döngüden sonra b sayısı a'dan büyük bir değer alıyor ve if'in içine hiç girmiyor.


Bu mesaja 1 cevap geldi.
İ
16 yıl
Er
Konu Sahibi

Çözdüm olayı. Arkadaşım senin yazdığında hatalı doğrusu budur.


#include<stdio.h>
#include<conio.h>
main () {

int a=1,b=2,c;
while(a<=100)
{
c=0; b = 2;
while(b<a){



if(a%b==0)
{
c=1;
}
b=b+1;
}
if(c==0)
printf("%d sayisi asal sayidir.\n",a);
a=a+1;
}
getch ();
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.