Rajzoljunk a konzol ablakba Windowson
Az alábbi program a bekért szám faktoriálisát számolná ki, de több hiba is van benne. A fordító lefordítja, mégsem jó az eredmény. Miért?
A feladat célja, hogy kipróbáld a fejlesztőkörnyezet beépített hibakereső (debug) lehetőségeit. Ezeket akkor is próbáld ki, ha e nélkül is megtalálod a hibákat!
A hiba megkeresésében többek között a következő funkciók segítenek:
#include <stdio.h>
int main(){
int n, i, l;
double fakt;
printf("Mennyi faktorialisat? ");
scanf("%d", &n);
i = 1;
while(i<=n){
fakt = n * i;
i = i + l;
}
printf("%g\n",fakt);
return 0;
}
|
Készíts programot, amely bekér a felhasználótól egy pozitív egész számot, és kiírja a prímtényezős felbontását! Pl.:
75|3 25|5 5|5 1|
Készíts programot, amely megkeresi azokat a háromjegyű számokat, melyeknek osztója a 2, 7 és a 13, de nem osztója az 5! Oldd meg próbálgatással, valamint okos módon is!
Készíts programot, amely kiírja, hogy a felhasználó által megadott pozitív egész szám prím-e, és azt is, hogy tökéletes szám-e! (Tökéletes akkor egy szám, ha megegyezik az osztói összegével, amibe az 1-et beleértjük, de önmagát nem. Pl. 6=1+2+3)
Gyakorláshoz ajánlott a https://infoc.eet.bme.hu/f02/ oldalon található feladatok közül néhány megoldása (a tömbös és véletlenszámos feladatokkal még ne foglalkozzatok).
| 2. feladat |
#include <stdio.h>
int main(){
int szam,oszto=2;
scanf("%d",&szam);
while(szam>1){
while(szam%oszto==0){
printf("%4d|%d\n",szam,oszto);
szam = szam / oszto;
}
oszto = oszto + 1;
}
printf(" 1|\n");
return 0;
}
|
| 3. feladat |
/*
int main(){
int i=100;
while(i<1000){
if( (i%2==0) && (i%7==0) && i%13==0 && i%5!=0 )
printf("%d\n",i);
i = i + 1;
}
return 0;
}
*/
#include <stdio.h>
int main(){
int i=2*7*13;
while(i<1000){
if( i%5!=0 )
printf("%d\n",i);
i = i + 2*7*13;
}
return 0;
}
|
| 4. feladat |
#include <stdio.h>
int main(void){
int szam, i, prim_e, osszeg;
// szám beolvasása
printf("Kerek egy pozitiv egesz szamot: ");
scanf("%d", &szam);
// prím-e
for (i = 2, prim_e = 1; i < szam && prim_e == 1; i = i + 1){
if (szam % i == 0)
prim_e = 0;
}
if (prim_e != 0 && szam > 1)
printf("%d prim.\n", szam);
else
printf("%d nem prim.\n", szam);
// tökéletes-e
for (i = 1, osszeg = 0; i < szam; i = i + 1){
if (szam%i == 0)
osszeg = osszeg + i;
}
if (osszeg == szam)
printf("%d tokeletes.\n", szam);
else
printf("%d nem tokeletes.\n", szam);
return 0;
}
|