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;
}
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;
}
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
/*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);
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]