A programozzunk C nyelven könyből az if-re van egy példa, amit nem igazán tudok megvalósítani, úgy hogy jó legyen, tudnátok segíteni?
A lényeg, hogy a scanf-nél azt akarja hogy, ha többet adunk meg mint két szám, akkor azt írja ki, hogy hibás adatbevitel. A gond az, hogy mivel ha pl 2,2,2,2,2-t írok akkor az első két számot veszi figyelembe, hiba írok ketttőnél többet, nem megy tovább a hibaüzenetre, csak ha mondjuk más formátummal adom meg, pl. : vessző nélkü. Hhogy lehet ezt megvalósítani, hogy ha 2db számnál többet írunk akkor rossz legyen?
#include<stdio.h>
#include<stdlib.h>
main()
{
int a,b,c;
printf("adjon meg ket szamot vesszovel elvalasztva:\n");
if(scanf("%d,%d",&a,&b)!=2)
{ printf("hibas adatbevitel\n");
exit(-1);
}
c=a+b;
printf("a ket szam osszege %d+%d=%d",a,b,c);
}
a scanf-nek a visszatérési értéke 1, ha a bevitel jó
ha nem, akkor 0
írd át: if(scanf("%d,%d",&a,&b)!=1)
Tabaki jól mondja, ez a legegyszerűbb.
if(scanf("%d,%d,%d",&a,&b,&c)>2) printf("too many input\n");
A példádban az azért nem jó, mert ha csak két értéket olvasol be, akkor a visszatérési érték sem lesz soha nagyobb kettőnél.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!