C++ hakkında soru yardımı
Gönderilme zamanı: Sal Oca 19, 2021 1:06 pm
				
				Selamunaleyküm attığım soruyu C++ bilenler cevaplayabilir misiniz rica etsem 
			Herade şimdi sen kendinde cevaplarsınOPC Line yazdı: Sal Oca 19, 2021 1:06 pm Selamunaleyküm attığım soruyu C++ bilenler cevaplayabilir misiniz rica etsem 40C6FF17-EE35-464F-97AB-79FD44CF032A.jpeg
 
   
  

Kod: Tümünü seç
#include <iostream>
using namespace std;
bool asalSayimi(int num);
int main()
{
    int elemansayisi=0;
    std::cout<<"Kaç adet eleman oluşturulsun ?"<<std::endl;
    std::cin>>elemansayisi;
    while( std::cin.fail() ){
        std::cout<<"Lütfen geçerli bir eleman sayisi girin"<<std::endl;
        std::cin.clear();
        std::cin.ignore(256,'\n');
        std::cin >> elemansayisi;
        
    }
    
    //std::cout<<"girilen eleman sayisi = "<<elemansayisi<<std::endl;
    
    int dizi[elemansayisi];
    srand ( time(NULL) );
    for(int i=0;i<elemansayisi;i++)
    {
        int randomRakam = (rand() % 9) + 1;
        
        //eğer önce diziyi oluşturup, sonra dizinin kontrolünün yapılmasını isteniliyorsa
        //ikinci bir döngü ile kontrolü sağlamalısın. yoksa ameleliğe gerek yok aynı döngü içinde değiştirebilirsin
        
        /*
        if(randomRakam == 3){
            randomRakam = 12;
            cout<<"oluşturulan random rakam 3 iken 12 olarak değiştirildi "<<randomRakam<<std::endl;
        }else{
            std::cout<<"olusturulan rakam "<<randomRakam<<std::endl;
        }
        */
        
        //std:cout<<"olusturulan rakam "<<randomRakam<<std::endl;
        
        dizi[i] = randomRakam;
        
    }
    
    //kontrol döngüsü. 3'ün 12 ile değişimi ayrı döngüde isteniyorsa bu şekilde olmalı
    for(int i=0;i<elemansayisi;i++)
    {
        //std::cout<<"kontrol edilen eleman değeri "<<dizi[i]<<std::endl;
        if(dizi[i] == 3){
            dizi[i] = 12;
            //std::cout<<"değeri 3 olan dizi elemanı 12 olarak degistirildi "<<std::endl;
        }
    }
    
    int tek=0,cift=0,asal=0;
    for(int i=0;i<elemansayisi;i++)
    {
        if(asalSayimi(dizi[i])){
            //std::cout<<dizi[i]<<" asal sayidir"<<std::endl;
            asal++;
        }
        if ( dizi[i] % 2 == 1)
        {
           //std::cout<<dizi[i]<<" tek  sayidir"<<std::endl; 
           tek++;
        }
        if ( dizi[i] % 2 == 0)
        {
           //std::cout<<dizi[i]<<" cift  sayidir"<<std::endl; 
           cift++;
        }
    }
    std::cout<<"Toplam Tek Sayi : "<<tek<<" # Toplam Cift Sayi : "<<cift<<" # Toplam Asal Sayi : "<<asal<<std::endl;
        
    return 0;
}
bool asalSayimi(int sayi){
    bool r=true;
    
    if(sayi==1)
        return false;
    
    for(int i = 2; i <= sayi / 2; i++) {
       if(sayi % i == 0) {
          r = false;
          break;
       }
    }
    return r;
}
Ömer Abi ilgin için çok teşekkür ederim. Bu ödev çok yakın bir arkadaşımın ödeviydi. Rica edince buradan yardım istedim bende. Eline sağlıkÖmer TELLİ yazdı: Prş Eyl 09, 2021 2:07 am Düzenleme : konu tarihine bakmamışım, niye eski konuyu uplarsınız ki
random 2 tane parametre alıyor mu ki ? Ödevin c++'da olduğuna emin misiniz.
Açıklamaları ve akış diyagramını kendiniz halledersiniz.Kod: Tümünü seç
#include <iostream> using namespace std; bool asalSayimi(int num); int main() { int elemansayisi=0; std::cout<<"Kaç adet eleman oluşturulsun ?"<<std::endl; std::cin>>elemansayisi; while( std::cin.fail() ){ std::cout<<"Lütfen geçerli bir eleman sayisi girin"<<std::endl; std::cin.clear(); std::cin.ignore(256,'\n'); std::cin >> elemansayisi; } //std::cout<<"girilen eleman sayisi = "<<elemansayisi<<std::endl; int dizi[elemansayisi]; srand ( time(NULL) ); for(int i=0;i<elemansayisi;i++) { int randomRakam = (rand() % 9) + 1; //eğer önce diziyi oluşturup, sonra dizinin kontrolünün yapılmasını isteniliyorsa //ikinci bir döngü ile kontrolü sağlamalısın. yoksa ameleliğe gerek yok aynı döngü içinde değiştirebilirsin /* if(randomRakam == 3){ randomRakam = 12; cout<<"oluşturulan random rakam 3 iken 12 olarak değiştirildi "<<randomRakam<<std::endl; }else{ std::cout<<"olusturulan rakam "<<randomRakam<<std::endl; } */ //std:cout<<"olusturulan rakam "<<randomRakam<<std::endl; dizi[i] = randomRakam; } //kontrol döngüsü. 3'ün 12 ile değişimi ayrı döngüde isteniyorsa bu şekilde olmalı for(int i=0;i<elemansayisi;i++) { //std::cout<<"kontrol edilen eleman değeri "<<dizi[i]<<std::endl; if(dizi[i] == 3){ dizi[i] = 12; //std::cout<<"değeri 3 olan dizi elemanı 12 olarak degistirildi "<<std::endl; } } int tek=0,cift=0,asal=0; for(int i=0;i<elemansayisi;i++) { if(asalSayimi(dizi[i])){ //std::cout<<dizi[i]<<" asal sayidir"<<std::endl; asal++; } if ( dizi[i] % 2 == 1) { //std::cout<<dizi[i]<<" tek sayidir"<<std::endl; tek++; } if ( dizi[i] % 2 == 0) { //std::cout<<dizi[i]<<" cift sayidir"<<std::endl; cift++; } } std::cout<<"Toplam Tek Sayi : "<<tek<<" # Toplam Cift Sayi : "<<cift<<" # Toplam Asal Sayi : "<<asal<<std::endl; return 0; } bool asalSayimi(int sayi){ bool r=true; if(sayi==1) return false; for(int i = 2; i <= sayi / 2; i++) { if(sayi % i == 0) { r = false; break; } } return r; }