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