Oli ongelmanani on se että pitäisi tarkistaa onko syötetty luku desimaali luku. muussa tapauksessa tulisi virheilmoitus ja pyydettäisiin syöttämään uusi luku. eli tämä siinä tapauksessa jos sylte jätettäisiin tyhjäksi tai syötteessä olisi kirjaimua tai muuta.
niin ja tämä nimenomaan C:llä
Otat syötteen merkkijonona. Sitten etsit jollakin keinolla pisteen/pilkun ja luet sen vasemmalta puolelta kokonaislukuosan ja oikealta puolelta desimaaliosan. Muunnat merkkijonon osat vaikka atoi():lla kunnollisiksi luvuiksi. Tämän jälkeen vain yhdistät jotenkin fiksusti kokonaisluku- ja desimaaliosan. Tai jotenkin näin...;)
Lue float tyyppinen arvo.
Jos (int)luku==luku, niin kyseessa oli kokonaisluku.
Siis jos 1234.00000:kin tulkitaan kokonaisluvuksi.
Halusiko kysyjä lukea flotareita vai kokonaislukuja? Jos kokonaislukuja, niin on sangen helppoa tarkistella onko siellä merkkejä jotka eivät kuulu validille arvoalueelle '0' - '9'. Lisäksi voisit tarkistaa, onko ensimmäinen merkki '-' jolloin syöttö olisi myöskin validi. Ennen tarkastelua merkkijono kannattaa 'trimmata', eli poistaa siitä ylimääräiset välit alusta ja lopusta.
Itse tein tämän QB:llä niin, että otin INT-funktiolla luvusta kokonaisluvun ja vertasin sitä alkuperäiseen. Jos nämä täsmäsivät, luvun oli pakko olla kokonaisluku, koska INT-funktio aiheuttaisi muutoksen ainoastaand desimaaliluvuissa. En vain tiedä C:lle vastaavia funktioita.
Edit: Äh, Markuksellahan oli ihan sama keino. En jotenkin hahmottanut.
Aihe on jo aika vanha, joten et voi enää vastata siihen.