Salam.Mən C++ dilini təzə öyrənirəm.Müəllim bir tapşırıq verib.100-dən 200-ə qədər sadə ədədləri ekrana çıxaran proqramı yazmaq mənə tapşırılıb.Məncə alqoritmim düzdür, ancaq proqram 197, 198, 199 ədədlərini təkrar-təkrar ekrana çıxarır.Bu da kod:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i,j,k=0;
for(i=101;i<200;i++)
{
for(j=2;j<i;j++)
{
if(i % j==0) break;
else k=1;
}
if(k=1) cout<<i<<“n”;
}
return 0;
}
Verilmiş cavablar və yazılan şərhlər (4 cavab var)
2
sənin səhvin
burdadı beləki fərz edək i=15. j=2 olanda i%j=1 olur buna gore sendə k=1 olacaq. j=3 olanda i%j=0 olacaq və dövr sınacaq j=2 olanda sən k=1 etdiyin üçün dövr break olanda k=1 olacaq və geriyə true döndərəcək.
başqa bir xətan if(k=1) belə yazdğında k=1 olur yəni şərt işləmir bəzi compile lar bunu xəta olaraq göstərsədə bəziləri göstərmir.
prime number ləri tapmaq üçün müxtəlif metodlar var internetdən daha ətraflı məlumat tapa bilərsən.
[/code]bool isPrime(int x)
{
if(x!=1 && x<4 )
return false;
else
{
for(int i=2; i<=sqrt(x); i++)
if(x%i==0)
return false;
}
return true;
}
bu prime number ları tapmaq ucun istifadə olunan metodlardı. dövrdə nəyə görə sqrt(x) istifadə etdiyimi bilmək istəsən [/code]
2
Heyder senin algoritmin bu olmaq isdiyib)
#include
using namespace std;
int main()
{
int k=0;
for(int i=101;i<=200;i++)
{
for(int j=2;j<=i/2;j++)
{
if(i%j==0)break;
else
{
k=1;
}
}
if(k==1)cout<<i<<endl;
k=0;
}
return 0;
}
2
0
Her birinize tesekkurumu bildirirem.Coxsagolun…
Sual verin
Cavab verin