Selles näites õpitakse printima kõik algarvud kahe kasutaja sisestatud numbri vahel.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C-programmeerimise teemadest:
- C kui … muidu avaldus
- C silmuse jaoks
- C murda ja jätkata
Peaarvude kuvamine kahe intervalli vahel
#include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )
Väljund
Sisestage kaks numbrit (intervallid): 20 50 Peaarvud vahemikus 20 kuni 50 on: 23 29 31 37 41 43 47
Selles programmis on while
tsükkel itereeritud ( high-low-1
) korda.
Igas iteratsioonis kontrollitakse, kas low
see on algarv või mitte, ja väärtust low
suurendatakse väärtusega 1
kuni low
on võrdne high
.
Sellelt lehelt leiate lisateavet selle kohta, kuidas kontrollida, kas number on algarv või mitte.
Kui kasutaja sisestab kõigepealt suurema arvu, ei toimi ülaltoodud programm ettenähtud viisil. Selle probleemi saate lahendada numbreid vahetades.
Kuva esmanumbrid, kui kõigepealt sisestatakse suurem number
#include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )
Sellelt lehelt saate teada, kuidas saab kasutaja määratud funktsiooni loomisel kuvada kõiki algarvu kahe intervalli vahel