Olen kirjoittanut C:llä alla olevaa ohjelmaa. Sen tulisi kerätä taulukkoon 10 lukua tulostaa seuraavalla tavalla:
n % kokonaissummasta
2 4.00
6 8.00
9 10.00
jne... Siis luvut lasketaan yhteen ja toiseen sarakkeeseen liukulukuarvona niiden osuus kokonaissummasta.
Alla oleva koodi kuitenkaan ei tulosta noita sarakeotsikoita pidemmälle. Osaisiko joku sanoa, miten sitä pitäisi muuttaa? Taulukkoon tulee kerätä kokonaislukuarvoja ja prosentit liukulukuarvona. Ajattelin, että tyyppimuunnos auttaisi mutta ehkä en vielä haltsaa sitä kokonaan. Mutta olis kiva saada kommentteja, jotta sais tuon toimimaan.
-----------------------------------------------
#include
#define KOKO 10
void
main(void)
{
int luvut[KOKO], /*Input- tietotaulukko */
i, /*Taulukkoindeksi */
summa; /*Lukujen yhteenlaskettu summa */
/*Pyydä luvut käyttäjältä */
printf("Anna %d lukua taulukkoon > ", KOKO);
/*Lue numerot taulukkoon */
for(i = 0; i < KOKO; i)
{
scanf("%f", & luvut[i]);
}
/*Laske lukujen summa */
summa = 0;
for(i = 0; i < KOKO; i)
{
summa = summa luvut[i];
}
/*Tulosta kukin luku ja sen osuus prosentteina */
printf("\nLuvut ja niiden prosenttiosuus...");
printf("\n n %% kokonaisarvosta"); /*Tulosta otsikot */
for(i = 0; i < KOKO; i)
{
printf("%3d%4c%5.2f", luvut[i], ' ', (float)(luvut[i] / (float)
summa) * 100); /*Sovella tyyppimuunnosta tulostuksen prosenttiin*/
}
}
n % kokonaissummasta
2 4.00
6 8.00
9 10.00
jne... Siis luvut lasketaan yhteen ja toiseen sarakkeeseen liukulukuarvona niiden osuus kokonaissummasta.
Alla oleva koodi kuitenkaan ei tulosta noita sarakeotsikoita pidemmälle. Osaisiko joku sanoa, miten sitä pitäisi muuttaa? Taulukkoon tulee kerätä kokonaislukuarvoja ja prosentit liukulukuarvona. Ajattelin, että tyyppimuunnos auttaisi mutta ehkä en vielä haltsaa sitä kokonaan. Mutta olis kiva saada kommentteja, jotta sais tuon toimimaan.
-----------------------------------------------
#include
#define KOKO 10
void
main(void)
{
int luvut[KOKO], /*Input- tietotaulukko */
i, /*Taulukkoindeksi */
summa; /*Lukujen yhteenlaskettu summa */
/*Pyydä luvut käyttäjältä */
printf("Anna %d lukua taulukkoon > ", KOKO);
/*Lue numerot taulukkoon */
for(i = 0; i < KOKO; i)
{
scanf("%f", & luvut[i]);
}
/*Laske lukujen summa */
summa = 0;
for(i = 0; i < KOKO; i)
{
summa = summa luvut[i];
}
/*Tulosta kukin luku ja sen osuus prosentteina */
printf("\nLuvut ja niiden prosenttiosuus...");
printf("\n n %% kokonaisarvosta"); /*Tulosta otsikot */
for(i = 0; i < KOKO; i)
{
printf("%3d%4c%5.2f", luvut[i], ' ', (float)(luvut[i] / (float)
summa) * 100); /*Sovella tyyppimuunnosta tulostuksen prosenttiin*/
}
}
Vastaukset 2
Vanhimmat
scanf("%f", & luvut[i]);
Miksi lukea kokonaislukutaulukkoon liukulukua?
tökkii