Siis olen C-kielellä väsäämässä ehtolausetta ohjelmaan, joka tarkistaa, onko syötetyt kolme kirjainta kukin 'x' tai 'o'. Onkohan seuraava ohjelmanpätkä sopiva?
...
char eka, toka, kolmas;
...
if(eka !='x' && eka !='o')
{
printf("\n****ERROR***k1");
printf("\nVain 'x' tai 'o' kelpaavat");
printf("\nAloita alusta kiitos\n");
}
else if(toka !='x' && toka != 'o')
{
printf("\n****ERROR***k2");
printf("\nVain 'x' or 'o' kelpaavat");
printf("\nAloita alusta kiitos\n");
}
else if(kolmas !='x' && kolmas != 'o')
{
printf("\n****ERROR***k3");
printf("\nVain 'x' tai 'o' kelpaavat");
printf("\nAloita alusta kiitos\n");
}
else
{
printf("\n\n\n");
} /* Tämän otteen loppu */
Siis onko tuo itse logiikka oikein?
Hankala ehtolause?
ehdontahdoin
1495
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 1
Vanhimmat
että ratkaisu kestää senkin, että tutkittavia muuttujia on ääretön määrä. Muuten teet koodia joka ei oikeen skaalaudu, koska joudut aina lisäämään kolkuu, nelkku, vitska muuttujia ja aina yksi ehtolause lisää. Laita luvut char-taulukkoon ja menet sitä läpi. Silloin ei ole väliä montako niitä on taulukossa. for(int i=0; i < 3;i ) { if(taulukko[i] == 'x' || taulukko[i] == 'o') { continue; else { printf("\nVain 'x' tai 'o' kelpaavat"); break; } } }