Saraketulostus tökkii

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*/
   }

}
2340
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

scanf("%f", & luvut[i]);

Miksi lukea kokonaislukutaulukkoon liukulukua?

Äänestä

tökkii

Äänestä

Kommentoi aloitusta


Muutostyyppi kirjoitti:

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*/
   }

}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu