Tehtävänanto on tälläinen:
Tee ohjelma, joka kysyy ensin käyttäjän sukupuolen ja tämän jälkeen iän. Lopuksi ohjelma tulostaa jonkin lausahduksen seuraavan ohjeen mukaisesti: Mies 0-55 vuotta: "Olet mies parhaassa iässä!", Mies 56-100 vuotta: "Olet viisas mies!", Nainen 0-55 vuotta: "Olet neito kauneimmillaan!", Nainen 56-100 vuotta: "Näytät nuorelta ikäiseksesi!", Muuten "Ohjelmassa tapahtunut virhe!" Ikä käsitellään kokonaisluku muuttujana ja sukupuoli merkkimuuttujana (m/n). Isoja kirjaimia ei tarvitse huomioida.
Olen koodannut tälläisen ohjelman:
#include <stdio.h> int main() { char n,m; int ika; printf("Oletko mies vai nainen (m/n)?"); scanf("%c",&m); scanf("%c",&n); printf("Anna ikäsi:"); scanf("%i",&ika); if (m && ika >= 0 && ika <= 55) { printf("Olet mies parhaassa iässä!"); } else if (m && ika >=56 && ika <= 100) { printf("Olet viisas mies!"); } else if (n && ika >=0 && ika <=55) { printf("Olet neito kauneimmillaan!"); } else if (n && ika >=56 && ika <=100) { printf("Näytät nuorelta ikäiseksesi!"); } else { printf("Ohjelmassa tapahtunut virhe!"); } }
Kun Viope C tarkastaa tehtävää se toimii ongelmitta mies 0-55v ja 56-100v kohdissa mutta sitten kun pitäisi tulla teksti "Olet neito kauneimmillaan!" niin tulee teksti "Olet mies parhaassa iässä!" Voisiko joku auttaa tässä ongelmassa?
(Mod. Edit. Kooditagit.)
Kuulepa nyt, siellä VIOPEssa on niin seikkaperäiset ohjeet, kuin vain olla tarvitsee.
Mieti vielä uudemman kerran, mitä mahtavat tehdä seuraavat rivit:
scanf("%c",&m); scanf("%c",&n); if (m && ...
Jospa kuitenkin lukisit vain yhden merkin ja tarkistaisit, onko se 'm'
vai 'n'
.
En ymmärtänyt vastaustasi :D
Sinulla on tuossa kaksi scanfia. Tarvitset vain yhden, jolla luetaan yhteen muuttujaan joko m tai n.
Ja muuttujan nimeksi sopinee paremmin esim. sukupuoli. Sitten if-lauseessa vertailu tapahtuu tyyliin "sukupuoli == 'm'".
Tässä on hieman toimivia ohjelman osia:
scanf("%c", &sukupuoli); if (sukupuoli == 'm' &&
Ei hemmetti sentään kun en saa millään toimimaan tätä ohjelmaa. Aina tulee "Olet mies parhaassa iässä" 0-56v naisen tekstin kohdalla. Alkaa potuttaa pikkuhiljaa... :D
Millainen ohjelmasi lähdekoodi on nykyään?
Joo ei mitään enää sinne piti laittaa joku getchar toiminto nyt alko pelaa hemmetti kun siinä oli että luvun 4 teoriaosassa on esimerkki tutkailin sitä tossa joku tunnin varmaa mutta siin oli virhe oli luvun 5 teoriaosassa just tommonen esimerkki, mut kiitti avusta kaikille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.