C-ohjelma ongelma!!

Miksei liikenteenlaskuohjelmani pelitä?
Osaisiko joku auttaa?

ohjelman tarkoitus on ottaa vastaan
ajoneuvokoodeja ja lopuksi tulostaa otannan
tulokset..

pikaista apua etsien!!

#include <stdio.h>
#include <conio.h>


int main(void)
{
int
henkiloauto,moottoripyora,linja_auto,kuorma_auto;
int muisti, muisti2, muisti3, muisti4;
int yla = 4;
int ala = 0;

/*määritellään muuttujat*/

printf
("LIIKENTEENSEURANTAOHJELMA\n\n"); /*Tulosteta
an käyttäjälle ohjeet*/
printf("1 - Henkilöauto\n");
printf("2 - Moottoripyörä\n");
printf("3 - Linja-auto\n");
printf("4 - Kuorma-auto\n");
printf("0 - Lopetus\n\n");



printf("Anna Ajoneuvokoodi:"); /*Tulostetaan
käyttäjälle pyyntö*/
scanf("%d", &muisti); /*tutkitaan syötettyä
lukua*/


do


{
if (muisti==1) /*annetaan talletusehdot
ja tallennetaan tieto*/
{henkiloauto =muisti;
}
else if (muisti==2)
{
muisti2 =muisti;
moottoripyora =muisti2/2;
}

else if (muisti==3)
{
muisti3 =muisti;
linja_auto =muisti3/3;
}

else if (muisti==4)
{
muisti4 =muisti;
kuorma_auto =muisti4/4;
}
return 0; }

while (muisti <= yla && muisti > ala);





if (muisti==0)
{
printf("Ohi menneet ajoneuvot:\n"); /*tulostetaan
loppuyhteenveto*/
printf("Henkilöautoja %d kpl\n",henkiloauto);
printf("Moottoripyöriä %d kpl\n",moottoripyora);
printf("Linja-autoja %d kpl\n",linja_auto);
printf("Kuorma-autoja %d kpl\n",kuorma_auto);
}


else
{
printf ("Annoit virheellisen ajoneuvokoodin!");
}





return 0;
}
3485
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

En ole C-guru,osaaja tai edes koodari, mutta
sulla näyttäisi olevan rakennevika...

Eli sulla lukee siellä näin:
>printf("Anna Ajoneuvokoodi:"); /*Tulostetaan
>käyttäjälle pyyntö*/
>scanf("%d", &muisti); /*tutkitaan syötettyä
>lukua*/
>do

Eli sä skannaat sen käyttäjän luvun ennen DO
silmukkaa...annas mä arvaan, kun annat sille eka
kerran jonkun luvuista 1,2,3,4 niin se jää
luuppiin kiinni...??

Kokeile rakenteeltaan jotain tällaista...

#includet
begin ohjelma{
printtaa ohjeet
begin looppi{

skannaa käyttäjän luku;
case of 1:.....
case of 2:.....
case of 3:.....
case of 4:.....
case of 0: GOTO LOPPU;
default: printtaa uuudelleen ohjeet
}end looppi

LOPPU:

}end ohjelma

Äänestä

/*Nollataan aluksi muuttujat*/
int henkiloauto=0, moottoripyora=0, linja_auto=0, kuorma_auto=0;

/*Pois turhat tilpehöörit*/
int muisti=0;

/*Siirretään do tähän*/
do
{
/*Tyhjennetään näyttö*/
clrscr();
printf("LIIKENTEEN...

/*Tyhjennetään näppäimistöpuskuri*/
fflush(stdin);
scanf("%d", &muisti);

/*Muuttujan arvo lisääntyy kätevästi näin:
(integer-luvuilla ei muuten kannata jakolaskua suorittaa, desimaalit katkeaa, esim. 5/2=2) */
if (muisti==1)
{
henkiloauto++;
}
else if (muisti==2)
{
moottoripyora++;
}
else if (muisti==3)
{
linja_auto++;
}
else if (muisti==4)
{
kuorma_auto++;
}
/* return 0; pois tästä*/
}while (muisti <= yla && muisti > ala);

Äänestä

Koodisi on täynnä virheitä ja monen asian voisi tehdä paljon paremmin. Suosittelen tarkempaa tutustumista C-kieleen.

Anyway, tässä tulee toimiva koodi:

---[Begin_of_code_block]
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* Määritetään vakioina ylä- ja alarajat */
const yla=4, ala=0;

/* Muuttujamäärittelyt ja alustus */
int henkiloauto=0,moottoripyora=0,linja_auto=0,kuorma_auto=0;
int muisti=0;

/* Ohjeet käyttäjälle */
printf ("LIIKENTEENSEURANTAOHJELMA\n\n");
printf("1 - Henkilöauto\n");
printf("2 - Moottoripyörä\n");
printf("3 - Linja-auto\n");
printf("4 - Kuorma-auto\n");
printf("0 - Lopetus\n\n");

do
{
printf("Anna ajoneuvokoodi: ");
/* Luetaan syöte */
scanf("%d", &muisti);

switch(muisti)
{
case 0: break;
/* Lisätään oikeaa laskuria yhdellä*/
case 1: henkiloauto++;
break;
case 2: moottoripyora++;
break;
case 3: linja_auto++;
break;
case 4: kuorma_auto++;
break;
/* Virheilmoitus, jollei syöte välillä 0-4 */
default: printf("Annoit virheellisen ajoneuvokoodin!\n");
break;
}
} while(muisti); /* Kunnes muisti==0 */

/* Loppuyhteenveto */
printf("\nOhi menneet ajoneuvot:\n");
printf("Henkilöautoja %d kpl\n",henkiloauto);
printf("Moottoripyöriä %d kpl\n",moottoripyora);
printf("Linja-autoja %d kpl\n",linja_auto);
printf("Kuorma-autoja %d kpl\n",kuorma_auto);

return 0;
}
---[End_of_code_block]

Äänestä

Kommentoi aloitusta


ulko kirjoitti:

Miksei liikenteenlaskuohjelmani pelitä?
Osaisiko joku auttaa?

ohjelman tarkoitus on ottaa vastaan
ajoneuvokoodeja ja lopuksi tulostaa otannan
tulokset..

pikaista apua etsien!!

#include <stdio.h>
#include <conio.h>


int main(void)
{
int
henkiloauto,moottoripyora,linja_auto,kuorma_auto;
int muisti, muisti2, muisti3, muisti4;
int yla = 4;
int ala = 0;

/*määritellään muuttujat*/

printf
("LIIKENTEENSEURANTAOHJELMA\n\n"); /*Tulosteta
an käyttäjälle ohjeet*/
printf("1 - Henkilöauto\n");
printf("2 - Moottoripyörä\n");
printf("3 - Linja-auto\n");
printf("4 - Kuorma-auto\n");
printf("0 - Lopetus\n\n");



printf("Anna Ajoneuvokoodi:"); /*Tulostetaan
käyttäjälle pyyntö*/
scanf("%d", &muisti); /*tutkitaan syötettyä
lukua*/


do


{
if (muisti==1) /*annetaan talletusehdot
ja tallennetaan tieto*/
{henkiloauto =muisti;
}
else if (muisti==2)
{
muisti2 =muisti;
moottoripyora =muisti2/2;
}

else if (muisti==3)
{
muisti3 =muisti;
linja_auto =muisti3/3;
}

else if (muisti==4)
{
muisti4 =muisti;
kuorma_auto =muisti4/4;
}
return 0; }

while (muisti <= yla && muisti > ala);





if (muisti==0)
{
printf("Ohi menneet ajoneuvot:\n"); /*tulostetaan
loppuyhteenveto*/
printf("Henkilöautoja %d kpl\n",henkiloauto);
printf("Moottoripyöriä %d kpl\n",moottoripyora);
printf("Linja-autoja %d kpl\n",linja_auto);
printf("Kuorma-autoja %d kpl\n",kuorma_auto);
}


else
{
printf ("Annoit virheellisen ajoneuvokoodin!");
}





return 0;
}

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