Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
13
Cevap
448
Tıklama
0
Öne Çıkarma
Asal sayılar Lütfen bakın saat 6 ya teslim etmem lazım
P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

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;
}

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



P
9 yıl (97 mesaj)
Çavuş

hocam i%2==1 ise asal sayıdır demek doğru bir ifade değil bence


Bu mesaja 1 cevap geldi.
R
9 yıl (771 mesaj)
Yüzbaşı

bu kod tamamen yanlış. zaten bir sürü hazır kod var, google'a "asal sayı kod c" yazman yeterli.


Bu mesaja 1 cevap geldi.
P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

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.




Bu mesajda bahsedilenler: @pir2xh
P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @rukaplan
R
9 yıl (771 mesaj)
Yüzbaşı

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 */




Bu mesajda bahsedilenler: @patlasakmı
.
9 yıl (53 mesaj)
Çavuş

int girilensayi= kullanicidan alinan sayi ;

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

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


}



P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

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 ??



W
9 yıl (3844 mesaj)
Yarbay

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



P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
R
9 yıl (771 mesaj)
Yüzbaşı

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");

}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @patlasakmı
P
9 yıl (44 mesaj)
Onbaşı
Konu Sahibi

bu iyi oldu çok teşekkürler




Bu mesajda bahsedilenler: @rukaplan
C
9 yıl (54 mesaj)
Çavuş

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.



R
9 yıl (3809 mesaj)
Binbaşı

Return kullanmayı bilmiyon daha biz googleddn bakmadik sanki triplerine girmissinn . Az saygili olun



< Bu ileti mini sürüm kullanılarak atıldı >

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.