En saa tätä harjoitus tehtävää toimimaan oikein vaan se alkaa lopuksi printtaamaan tähtiä ikuisesti kestävässä silmukassa. Missä vika? Kiitos jo etukäteen!
Tässä on tehtävänanto:
http://cs.stadia.fi/~silander/ohjelmointi/c_opas-Teht_aum-13.html
Ja tässä mitä sain aikaan:
#include
int main(void){
int arvos[6];
int luku,lkm=0,summa=0;
while (luku != 6){
printf("\nAnna arvosana[1-5], [6] lopettaa :");
scanf("%d", &luku);
while ((luku < 1) || (luku > 6)) {
printf("\nVirhe! Syötä luku väliltä 1-6.");
printf("\nAnna Arvosana[1-5], [6] lopettaa :");
scanf("%d", &luku);
}
if (luku != 6){
arvos[luku] ;
}
}
int i;
for (i=0;i0) {
int k;
for (k=0;k
Tässä on tehtävänanto:
http://cs.stadia.fi/~silander/ohjelmointi/c_opas-Teht_aum-13.html
Ja tässä mitä sain aikaan:
#include
int main(void){
int arvos[6];
int luku,lkm=0,summa=0;
while (luku != 6){
printf("\nAnna arvosana[1-5], [6] lopettaa :");
scanf("%d", &luku);
while ((luku < 1) || (luku > 6)) {
printf("\nVirhe! Syötä luku väliltä 1-6.");
printf("\nAnna Arvosana[1-5], [6] lopettaa :");
scanf("%d", &luku);
}
if (luku != 6){
arvos[luku] ;
}
}
int i;
for (i=0;i0) {
int k;
for (k=0;k
Vastaukset 6
Vanhimmat
Et tyhjennä missään vaiheessa taulukkoa
int arvos[6];
Siellä voi olla mitä tahansa arvoja sisällä alustamattomana.
joo, tuopa sieltä unohtui. Kiitos paljon!
Mitä tuo "taulukon tyhjentäminen" oikeastaan tarkoittaa? Miten se tehdään?
Se tarkoittaa samaa kuin alustaminen. Eli alustetaan taulukon kaikki alkiot vaikka arvoon nolla.
jos esim sulla on taulukko:
int taulu[5] = {2,3,5,6,7};
niin voit alustaa taulukon vaikka for-silmukassa:
for(int i=0; i
Ote ohjelmasta:
while ((luku < 1) || (luku > 6))
Olen vähän itsekin noviisi näissä jutuissa, mutta eikös tuossa while:n jälkeen riittäisi yhdet sulut ilman noita sisempiä.
Edelleen jos halutaan syöttää lukuja yhdestä viiteen, niin eikö tuon pitäisi olla luku > 5?
en tiedä voiko sulut jättää pois, mutta noin toimii ainakin..
Eikun tuo while- looppi tulostaa virheilmoituksen mikäli käyttäjä näppäilee luvun joka on pienempi kuin 1 ja suurempi kuin 6 (6 oli numero jolla ohjelma lopetetaan = sallittu numero)
itseasiassa tuossa oli mulla vielä pieni virhe että nollaa ei voinut syöttää vaikka arvosanoja piti voida syöttää 0-5.. no pistetäänpä tähän vielä mun lopullinen koodinpätkä ja ammattilaiset voi kommentoida jos tässä jotain voisi tehdä paremmin, thx :)
#include
int main(void){
int arvos[6]={0};
int luku;
int lkm=0;
int summa=0;
while (luku != 6){
printf("\nAnna arvosana[0-5], [6] lopettaa :");
scanf("%d", &luku);
while ((luku < 0) || (luku > 6)) {
printf("\nVirhe! Syötä luku väliltä 1-6.");
printf("\nAnna Arvosana[1-5], [6] lopettaa :");
scanf("%d", &luku);
}
if (luku != 6){
arvos[luku]++;
}
}
int i;
for (i=0;i0) {
lkm+=arvos[i];
summa+=i*arvos[i];
int k;
for (k=0;k