Ohessa on kirjoittamani koodi, joka pitäisi tulostaa lukujen summa ja keskiarvo sekä pienin ja suurin luku.
Pulmana on, että pienimmälle ja suurimmalle luvulle molemminlle näyttää menevän suurin syötetty arvo. Osaisko joku neuvoa miten nuo pienimmän ja suurimman saa kohdalleen? Kiitos paljon! :)
#include
void main(void)
{
int l_joukko = 0, lasku, min = 0,
int max = 0, lukum;
float aver = 0, sum = 0;
/*Lukujen kokonaismäärä*/
printf("Montako lukua? \n\n");
scanf("%d", & lukum);
while(l_joukko < lukum)
{
printf("Luku : \n\n");
scanf("%d", & lasku);
min = lasku;
max = lasku;
if(min > lasku )
{
min = lasku;
}
else if(max < lasku)
{
max = lasku;
}
sum = sum lasku ;
while(lasku < 0)
{
printf("Virhe!\n");
}
l_joukko = l_joukko ;
}
aver = sum / lukum;
printf("Lukujen summa on %f ja keskiarvo %f . \n\n" , sum, aver);
printf("Pienin luku on %d ja suurin %d", min, max);
}
Pulmana on, että pienimmälle ja suurimmalle luvulle molemminlle näyttää menevän suurin syötetty arvo. Osaisko joku neuvoa miten nuo pienimmän ja suurimman saa kohdalleen? Kiitos paljon! :)
#include
void main(void)
{
int l_joukko = 0, lasku, min = 0,
int max = 0, lukum;
float aver = 0, sum = 0;
/*Lukujen kokonaismäärä*/
printf("Montako lukua? \n\n");
scanf("%d", & lukum);
while(l_joukko < lukum)
{
printf("Luku : \n\n");
scanf("%d", & lasku);
min = lasku;
max = lasku;
if(min > lasku )
{
min = lasku;
}
else if(max < lasku)
{
max = lasku;
}
sum = sum lasku ;
while(lasku < 0)
{
printf("Virhe!\n");
}
l_joukko = l_joukko ;
}
aver = sum / lukum;
printf("Lukujen summa on %f ja keskiarvo %f . \n\n" , sum, aver);
printf("Pienin luku on %d ja suurin %d", min, max);
}
Vastaukset 2
Vanhimmat
Tee tuo sijoitus vain ekakerralla niin vertailu toimii. Siis jotenkin näin:
if (l_joukko ==0)
{min = lasku;
max = lasku;
};
Kaksi muutosta:
alustat muuttujat näin:
min = INT_MAX;
max = INT_MIN;
ja otat scanf:n jälkeiset
min = lasku;
max = lasku;
pois