Şimdi Ara

C de Asal Sayı Problemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
3
Cevap
0
Favori
3.595
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 ();
    }



  • Ö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.




  • Çö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 ();
    }
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.