C++ tek çift değerleri bulma

Teşekkür ederim size de :)
Burada tek sorun printf ve scanf kullanmam gerektiği ve scanf'i sadece bir kere kullanabileceğimdi. E cin de scanf yerine geçiyor 1'i çok aşmışız :D Ama çok teşekkür ederim mantığını oturtmamda yardımcı oluyor.

Sayıları diziye çevirip for döngüsü ile tek bir scanf kullanarak sayıları alabilirsiniz.
Muadilleri de yeni bir sayı dizisine atamalısınız.
 
Burada tek sorun printf ve scanf kullanmam gerektiği ve scanf'i sadece bir kere kullanabileceğimdi.

C:
#include <stdio.h>


int main()

{

    int sayiDizisi[99];

    int adet;

    int i;


    printf("Kac adet sayi (1-99 arasinda) girmek istiyorsunuz: ");

    scanf("%d",&adet);


    for (i=1;i<=adet;i++)

    {

        printf("%d. sayiyi giriniz: ",i);

        scanf("%d",&sayiDizisi[i]);

    }

    return 0;

}

gibi...
 
Son düzenleyen: Moderatör:
Tek cin komutu ve diziler ile aşağıdaki kodu hazırladım.

C++:
#include <iostream>
#include <math.h>

using namespace std;

int main(){

    //4 adet sayı gir

    //çift olanların geometrik ortalamasını hesapla ve ekrana yaz


    int dizicift[4];
    int dizitek[4];
    int i = 0, j = 0;

    for(int z; z < 4; z++){
        cout << z+1 << " numarali sayiyi girin: ";
        cin >> dizicift[z];
        dizitek[z] = dizicift[z];
    }    

    if(dizicift[0] % 2 == 0){
        i++; //sayı çift olduğu için, çift sayacına 1 ekledik.
        dizitek[0] = 1; //sayı çift olduğu için, tek sayıların ortalamasına etki etmesin diye, tek sayılardaki muadilini 1'e eşitledik.
    }
    else{
        dizicift[0] = 1; //sayı tek olduğu için çift sayılardaki muadilini 1'e eşitledik. böylece çiftlerin ortalamasına etki etmedi.
        j++; //sayı tek olduğu için tek sayacına 1 ekledik.
    }
    

    if(dizicift[1] % 2 == 0){
        i++;
        dizitek[1] = 1;
    }
    else{
        dizicift[1] = 1;
        j++;
    }

    if(dizicift[2] % 2 == 0){
        i++;
        dizitek[2] = 1;
    }
    else{
        dizicift[2] = 1;
        j++;
    }

    
    if(dizicift[3] % 2 == 0){
        i++;
        dizitek[3] = 1;
    }
    else{
        dizicift[3] = 1;
        j++;
    }

   
    cout << "Toplam cift sayi degerimiz: " << i << endl;
    cout << "Toplam tek sayi degerimiz: " << j << endl;

    if(i != 0){
        cout << "Cift sayilarin geometrik ortalamasi: " << pow(dizicift[0]*dizicift[1]*dizicift[2]*dizicift[3], 1.0/(float)i) << endl;
    }
    else{
        cout << "Cift sayilarin geometrik ortalamasi: " << "yok" << endl;

    }
    
    if(j != 0){
    cout << "Tek sayilarin geometrik ortalamasi: " << pow(dizitek[0]*dizitek[1]*dizitek[2]*dizitek[3], 1.0/(float)j) << endl;
    cout << "Tek sayilarin aritmetik ortalamasi: " << (float)(dizitek[0]+dizitek[1]+dizitek[2]+dizitek[3]-i)/float(j) << endl;
    }
    else{
    cout << "Tek sayilarin geometrik ortalamasi: " << "yok" << endl;
    cout << "Tek sayilarin aritmetik ortalamasi: " << "yok" << endl;
    }


    return 0;

}
 
Hocam çok teşekkürler uğraşıyorsunuz heveslisiniz de sanırım ama dizlerin d'sini görmedim daha ve döngülerle ve printf scanf kullanılarak yapmam gerekiyordu. Dizileri görünce geri dönüp bakacağım çok teşekkürler :)
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı