Şimdi Ara

Asal sayılar Lütfen bakın saat 6 ya teslim etmem lazım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
15
Cevap
0
Favori
352
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Ekranda hıcbır cıktı alamıyorum nerde yanlıs yapıyorum bılen varmı ?
    #include<stdio.h>

    int main(void)
    {
    int i;
    int counter = 0;


    for( i=1; i<10; i++ )
    {
    if( i == 1 || i == 2 || i == 3 ) return counter;
    if( i % 2 == 0 || i % 3 == 0) return 0;
    else if( i % 2 == 1 )
    {
    printf("Prime numbers\n");
    counter++;
    }


    printf("Prime numbers:%d",counter);

    }

    getchar();

    return 1;
    }



  • hocam i%2==1 ise asal sayıdır demek doğru bir ifade değil bence
  • bu kod tamamen yanlış. zaten bir sürü hazır kod var, google'a "asal sayı kod c" yazman yeterli.
  • pir2xh P kullanıcısına yanıt
    Hocam biliyorum aslında bunu i/2 diyerekte yapabilirdim ama i%2==1 ve 3 lü hali aslında dogru ornegın 3 ve ondan sonrakı sayılarda herhangı bır cıft asal varmı yok 2 de cıftlerı eledın 3 de ıse ornegın 9 asal degıl bunun gıbı sayılar var tek olup asal olmayan amac onlarıda elemek ıcın aslında daha guzel bır yol bence.
  • rukaplan R kullanıcısına yanıt
    Ne desem bilemedim biz bılmıyoruz sankı ulan google bakmadan da yaptım zaten sorun o degıl bence bak bence asalları bulmak ıcın yapmıs oldugum yol dogru ama kodu yanlıs yazdım ben ve fonksıyonları yenı bıtırdım return kullanmayı ogrenmeye calısıyorum ve burada paylastımkı neyı yanlıs yapıyorum sen ıse yanlıs gıt bak dıyosun yanlıs anlama en azından emek verıp yazmıssın onuda yapmayanlar var ama rica etsem neresi yanlıs onu soylesen hatamı gorsem duzeltsek bırseyler yapsak benım ıcın daha ıyı olur.
  • patlasakmı P kullanıcısına yanıt
    Kodundaki hata şu: sayıyı sadece 2 ve 3 ile bölerek test etmişsin, aslında sayının o sayıya kadarki tüm sayılarla bölünüp bölünmediğini kontrol etmen gerekir.
    Örneğin; 17 sayısının asal olup olmadığını test etmek istiyorsun. bu durumda 17%2 == 0, 17%3 == 0, 17%4 == 0 ... 17%16 == 0 durumuna kadar test etmen gerekecek.

    ozaman
    int bayrak = 0; 
    for(i = 2; i < n; i++) /* n test ettiğimiz sayı */
    {
    if(n % i == 0) /* döngü içindeki i sayısı 2'den n-1'e kadarki tüm sayılardır */
    {/* if koşulu sağlandıysa demek ki bölünebildi, bu durumda bu sayı asal değil bayrağı değiştir*/
    bayrak = 1;
    break; /* if'in içindeyiz, demek ki bölünebildi, daha da döngünün devam etmesine gerek yok */
    }
    }
    /* döngü bittikten sonra bayrağın değişip değişmediğini kontrol et */
    if(bayrak == 1) /* bayrak = 1 ise demek ki yukarıdaki if'in içine girilmiş */
    printf("asal degildir");
    else /* bayrak = 0 ise bayrak değişmemiş, yani hiç bölünememiş, bu sayı asaldır*/
    printf("asaldir");
    /* istisnai durum n = 2'nin asal olmasını ayrıca koşul olarak koyabilirsin */




  • int girilensayi= kullanicidan alinan sayi ;

    for( int i=2 ; i<= girilensayi / 2 ; i ++)
    {

    if(girilensayi % i == 0)
    {
    sayı asaldır.
    }


    }
  • Cevaplar için teşekkür ederim hocam yaptınız yolu bılıyorum ama ben return u kullanmak ıstedım benım yapıgım gıbıde yapılabılmesı lazım ben bunu merak edıyorum nasıl yapıcam ??
  • return'den kastınız nedir? main programının içinde bir return her zaman olur zaten ve bu return'un amacı programın düzgün çalışıp çalışmadığını kullanıcıya söyler, main'deki return'un tek işlevi budur. main programının 0 ile bitmesi programın hatasız çalıştığını, 0'dan başka herhangi bir sayıyla bitmesi ise programın hata verdiğini belirtir. siz programı 1 ile sonlandırmışsınız, dolayısıyla programda hata olduğunu söylüyorsunuz.

    eğer başka bir programdan sizin ana programınıza bir sayının asal olup olmadığını belirten bir sonuç return etsin istiyorsanız (ki mantıklı olanı budur), şöyle bir şey yapabilirsiniz:https://codeshare.io/GLgppK




  • anladım return den kastım dongu kurarak bellı bır sayıya kadar olan asalları bulmakta return ılede suraya sunu gonder veya suraya gıt dıyede dıye bılıyoruzya bende onu kullanmak ıstedım ogrenmek ıstedım ama beceremeedım bırde return 1 ise onu cıkartıgımdada koydugumdada bırsey degısmıyor :) sadece birisi demıstıkı herbır programın sonunda bır return ıhtıyac var o sekıl kullanmını gormustum olesıne yazdım return 0 deılde 1 artık ne olcaksa bılmıyodum
  • patlasakmı P kullanıcısına yanıt
    return komutunu şu şekilde düşünelim. C dilinde fonksiyonlar yazılabilir. Bunlardan biri de main fonksiyonudur. main değiştirilemez ve kodlar ilk burdan çalışmaya başlar. ancak programcı isterse farklı fonksiyonları (kafasına göre isim vererek) yazabilir.

    fonksiyonlar iki türdür. değer dönen / değer dönmeyen. Eğer fonksiyon değer dönmeyecekse, sadece yazdırma vs yapacaksa fonksiyonun önüne void yazılır. örnek:
    void fonksiyonum()
    {
    printf("selam"); // dönüş değeri yok
    }

    eğer fonksiyon değer dönecekse önünde hangi tür değer dönecekse o yazılır. örnek:
    int toplamafonk()
    {
    return 3+5; // dönüş değeri int türünden
    }
    başka bir örnek
    double ondalikfonk()
    {
    return 3.14 // dönüş değeri double türünden
    }

    main de bir fonksiyon olduğuna göre önünde int var ise bir dönüş değeri olmalıdır. program dönüş değerini alsın diye kodun sonuna ister return -1; ister return 0; istersen return 1; yaz. önemli olan return önündeki değerin main'in önünde yazan ile aynı olması. örnek:
    int main()
    {
    return 55;
    }
    kabul gören de oraya return 0; yapıştırıp geçmek.

    ya da hiç return istemiyorsan aşağıdaki gibi de çalıştırabilirsin.
    void main()
    {
    printf("selamlar");

    }




  • rukaplan R kullanıcısına yanıt
    bu iyi oldu çok teşekkürler
  • Hocam return 'den sonraki satırlar çalıştırılmaz. return 'ü farklı bir fonksiyonda kullanarak ana fonksiyona yani main() 'e döndürür, diğer bir deyişle gönderirsiniz. Bundan dolayı main() fonksiyonunda koşullardan birisi doğru olduğunda return 'den sonrasına devam etmez. Bu nedenle çalışmıyordur programınız. Asal sayıyı return yardımıyla bulmak istiyorsanız, kodun o bölümünü farklı bir fonksiyonda yazarak çalıştırmayı deneyin.

    Diğer arkadaşların yorumlarını okumadım. Aynı şeyi yazan var ise affola.
  • Return kullanmayı bilmiyon daha biz googleddn bakmadik sanki triplerine girmissinn . Az saygili olun

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.