C++ da sadə ədədlər proqramında mənim səhvim haradadır?

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


Yadda saxlama
Kateqoriya: Sual . , , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (4 cavab var)

(14:32, 27/04/2013 ) #29371

sənin səhvin

if(i % j==0) break;
else k=1;

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]

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(15:31, 27/04/2013 ) #29373

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

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(21:00, 27/04/2013 ) #29375
#include <iostream>
using namespace std; 
int main () 
{
    for (int i=100; i<200; i++) 
    {
       	bool sade = true;
        for (int n=2; n*n<=i; n++)
        {
            if (i % n == 0) 
            {
                sade = false;
                break;    
            }
        }   
        if(sade) cout << i << endl;
    }
    return 0;
}
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(23:34, 27/04/2013 ) #29382

Her birinize tesekkurumu bildirirem.Coxsagolun…

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Software Developer cavab verdi - Payoneer kartdan pul çıxartdıqda vergi (1 gün əvvəl)

Software Developer cavab verdi - Wise vasitəsilə bank kartına pul köçürmə (5 gün əvvəl)

Software Developer cavab verdi - Rus dilindən mətni tərcümə etmək (6 gün əvvəl)

Cənab cavab verdi - Almanca söz bazası yığmaq (9 gün əvvəl)

rdrobert cavab verdi - Mikrofon süngərinə yazı (10 gün əvvəl)

rdrobert cavab verdi - Yerli virtual olaraq dost tapmaq platforması (10 gün əvvəl)

rdrobert cavab verdi - Almanca söz bazası yığmaq (10 gün əvvəl)

rdrobert cavab verdi - Playstation 4 almaq, Playsation klub açmaq (10 gün əvvəl)

rdrobert cavab verdi - Proqramistin ixtsasi hansidir? (10 gün əvvəl)

Software Developer cavab verdi - Azercell Kabinetim aplikasiyasında İstəSən tarifi haqqında (11 gün əvvəl)

Software Developer cavab verdi - Proqramistin ixtsasi hansidir? (11 gün əvvəl)

byshako cavab verdi - Google Azərbaycan nömrələrini qəbul etmir (22 gün əvvəl)

rdrobert cavab verdi - Honeygain, passiv gelir (23 gün əvvəl)

rdrobert cavab verdi - Xaricdən telefon getirmek (23 gün əvvəl)

rdrobert cavab verdi - Google Azərbaycan nömrələrini qəbul etmir (23 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 607 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23237 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024