1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e: main() int number1, number2; printf("adjon meg két számot: "); scanf("%d %d", &number1, &number2); if ((number1 == 0) && (number2 == 0)) printf("mindkét szám zérus\n"); printf("nem igaz hogy mindkét szám zérus \n");
2. Írjunk programot mely beolvas két számot és megállapítja hogy valamelyik szám zérus-e: main() int number1, number2; printf("adjon meg két számot: "); scanf("%d %d", &number1, &number2); if ((number1 == 0) (number2 == 0)) printf("legalább az egyik szám zérus 0\n"); printf("egyik szám sem zérus\n");
3. Írjunk programot mely eldönti, hogy a három megadott szakaszból szerkeszthető-e egy háromszög, ha igen akkor megadja a háromszög területét. #include <math.h> main() double a, b, c; /* változók deklarálása */ printf("a="); scanf("%d", &a); printf("b="); scanf("%d", &b); printf("c="); scanf("%d", &c); /* pozitív számnak kell lennie az oldalhosszaknak és két oldal összege nagyobb legyen mint a harmadik oldal */ if( a > 0 && b > 0 && c > 0 && a+b > c && a+c > b && b+c >a) double s; /* területszámítás */ s = (a+b+c) / 2.0; printf("terulet= %lf\n", sqrt(s * (s a) * (s b) * (s c))); printf("nem szerkesztheto haromszog\n");
4. Írjunk programot mely addig olvas be számokat amig a felhasználó kétszer egymás után nullát nem ad. Ekkor a program leáll és kiírja a beolvasott számok összegét. main() int number; /* beolvasott szám */ int sum = 0; /* összeg */ int prev_zero; /* az előző szám zérus volt? */ prev_zero = 0; scanf("%d", &number); /* ha a szám zérus és előző szám is zérus akkor vége, ennek a tagadása van itt megfogalmazva!(a && B) ==!A!B */ while(number!= 0 prev_zero == 0) sum = sum + number; if (number == 0) prev_zero = 1; prev_zero = 0; scanf("%d", &number); printf("the sum is %d\n", sum);
5. Írjunk programot, amely kilistázza a képernyőre a Fibonacci számsor első n tagját. Az n értékét a program a klaviatúráról várja. A Fibonacci számsor kiszámítására a következő szabály érvényes : F 0 = 0 ; F 1 = 1 ; F i = F i-1 + F i-2 ( i >= 2 ) void main() int n, fee, fe, fib, i; printf("kérem n értékét : ") ; scanf("%d",&n) ; fee = 0 ; fe = 1 ; for(i=2; i<=n; i++) fib = fe + fee; printf("\nfib[%3d] = %5d",i,fib); fee = fe ; fe = fib ; printf("\n");
6. Írjunk programot, amely kiszámítja az 1-1/3 + 1/5-1/7... végtelen sor összegét, tetszőleges pontossággal. A kívánt pontosságot a program a klaviatúráról várja. Ellenőrzésül : a sor összege π / 4 #include <math.h> /* A fabs() ill. pow() függvények */ /* miatt szükséges */ void main() double n, e, s, os; printf("\nkérem a pontosságot : "); scanf("%lf",&e) ; /* Az első összeg legyen 1 */ s = 1 ; /* A régi összeg legyen 0. */ os = 0 ; n = 1 ; /* Amíg a két összeg különbsége nagyobb a hibahatárnál */ while( fabs( s - os ) > e ) /* Az eddigi összeg legyen a régi összeg. */ os = s ; n += 1 ; /* Számoljunk új összeget */ s += pow( -1, n-1 ) * (1.0/(2*n-1)) ; printf("\na sor összege : %lf",s);
7. Írjunk programot, amely beolvas egy egész számot. A szám 2, 3 ill. 4 jegyű lehet. Ezt le is kell ellenőrizni. Az ellenőrzés után a program fordítsa meg a számot, és írja ki a képernyőre. A szám negatív is lehet! #include <math.h> void main() int n, jegyek,vane; long szam,absszam,e,t,sz,ez,hanyados,maradek,ujszam; do do printf("\nkérem a számot : ") ; scanf("%ld",&szam) ; absszam = labs(szam); while( absszam!=0 absszam/10 < 1 absszam/1000 > 9 ); /* Most megállapítjuk, hogy hány jegyü a szám */ n=3 ; hanyados = 0 ; while( n>0 && hanyados == 0 ) hanyados = absszam/(long)pow( 10,(double)n); n-- ; jegyek = n+2 ; switch( jegyek ) case 2: e = absszam/10 ; t = absszam%10 ; ujszam = 10*t+e ; case 3: e = absszam/100 ; maradek = absszam%100 ; t = maradek/10 ; sz = maradek%10 ; ujszam = 100*sz + 10*t + e;
case 4: e = absszam/1000 ; maradek = absszam%1000 ; default: t = maradek/100 ; maradek = maradek%100 ; sz = maradek/10 ; ez = maradek%10 ; ujszam = 1000*ez + 100*sz + 10*t + e; if( szam > 0 ) printf("\na megfordított szám = %ld\n",ujszam); printf("\na megfordított szám = %ld\n", -1*ujszam); printf("\nvan - e még szám (i/n) : ") ; vane = getc(stdin) ; while( vane == 'i' );
8. Írjunk egy egyszerüsített morze jeleket előállító programot! A program inputja egy négyjegyű egész szám! Le is kell ellenőrizni, hogy valóban négyjegyű-e! A számot először átkódoljuk úgy, hogy az egyeseket a százasokkal ill. a tízeseket az ezresekkel cseréljük fel. Az így kapott számot kell morze jelek sorozatává alakítani a következőképpen : Az első jel a START legyen, ezt szóköz kövesse. Ezután következzen a kódnak megfelelő jelsorozat szóközökkel elválasztva. Ezt a jelsorozatot kövesse egy szóköz ill. a STOP jel. Mindaddig "morzézni" kell amíg az 'i' billentyűt nyomjuk le a program által feltett kérdésre. A szükséges morze kódok a következők : START = -.-.- 1 =.---- 2 =..--- 3 =...-- 4 =...- 5 =... 6 = -... 7 = --... 8 = ---.. 9 = ----. 0 = ----- STOP =.-.-. void main() int kod, ez, sz, tz, eg, ujkod, szamjegy, valasz, i; do kod = 0 ; printf("\nkérem a számot : "); do scanf("%d",&kod); while(kod<1000 kod>9999); ez = kod/1000 ; sz = (kod - ez*1000)/100 ; tz = (kod - ez*1000 - sz*100)/10 ; eg = (kod - ez*1000 - sz*100 - tz*10 ); ujkod = 1000*tz + 100*eg + 10*ez + sz ; printf("\na számnak megfelelő kód : %4d\n",ujkod); printf("\n") ; printf("-.-.- ") ; // START jel for(i=1; i<=4; i++) if( i==1 )
szamjegy = tz; if( i==2 ) szamjegy = eg; if( i==3 ) szamjegy = ez; szamjegy = sz; switch(szamjegy) case 0: printf("----- "); case 1: printf(".---- "); case 2: printf("..--- "); case 3: printf("...-- "); case 4: printf("...- "); case 5: printf("... "); case 6: printf("-... "); case 7: printf("--... "); case 8: printf("---.. "); case 9: printf("----. "); default: printf("hiba"); printf(".-.-.") ; // STOP jel
printf("\ntovábbi szám (i/n) : "); valasz = getc(stdin) ; while( valasz == 'i' );
9. Írjunk programot amely az a, b, c értékek ismeretében képernyőre írja az ax 2 +bx+c=0 másodfokú egyenlet megoldásait. #include <math.h> main() double a, b, c; printf( a= ); scanf( %d, &a); printf( b= ); scanf( %d, &b); printf( c= ); scanf( %d, &c); if(a == 0) if(b == 0) if(c == 0) printf( Az egyenlet azonossag ); printf( Az egyenlet ellentmondas ); printf( Elsofoku egyenlet megoldas: %lf, -c / b); double det = b*b-4*a*c; if(det < 0.0) printf( Nincs valos megoldas ); if(det == 0.0) printf( Ket egybeeso megoldas: %lf, -b/(2*a)) prtinf( Ket megoldas: %lf %lf, (-b+sqrt(det)) / (2*a), (-b-sqrt(det)) / (2*a));