Final sınavında çıkan bir soru vardı belki bütünlemede de çıkar.Şöyle ki 5 tane sayı giriliyor.Bu sayılar SAYI isimli bir struct'a atanıyor ardından bu struct komple ASAL adlı fonksiyona gönderiliyor.Bu fonksiyon sayılar arasından sadece asal olanları geri döndürüyor ve ekrana yazdırıyor.Şimdi struct değer atama ve asal sayıları bulan fonksiyonu yazma konusunda bir sıkıntı yok.Diyelim ki sayılar 3 5 12 23 30 olsun fonksiyona 5 değer gidecek ve 3 değer dönecek bu nasıl olabilir?Fonksiyondan sadece bir değer döndürmeyi biliyorum.Kaldı ki ekrana yazdırırken for ile yazdırmayı düşündüm ama for i=1 kaça kadar yazdırıcam kullanıcının girdiği sayılardan kaç tanesinin asal olduğunu bilmiyorum ki?




 

"struct Sayı"nın içinde neler tanımlıyorsunuz?

Şöyle bir şey olabilir.
struct sayı {int deger; boolean asalmi}

ASAL fonksiyonunda deger'ler asalsa sayi1.asalmi=true, değilse sayi1.asalmi=false yapılabilir. Böylelikle fonksiyonun bir şey döndürmesine gerek kalmaz.
Ekrana yazdırırken de döngü 5 kere çalışır, asalmi true ise ekrana yazar.

nickini vermek istemeyen uye

icerde yeni struct yarat dinamik hafiza yonetimiyle sora bunun pointerini geri yolla, bazi compilerler buna izin vermez, yani

typedef sayi struct sayi;
sayi sayi2; bunun icini doldur
fonksiyon(&sayi2)

sayi * fonksiyon(*sayi sayi2){

sayi* yeni = malloc(sizeof(sayi))

....


return yeni;
}

iplikci

@nickini vermek istemeyen üye

sayı.a=3
sayı.b=5
sayı.c=12
sayı.d=23
sayı.e=30

bu struct komple gidiyor asal olanlar dönüyor.demek istediğim böyle bir şey.

allstar
1

mobil görünümden çık