Gå til innhold

Hva er feil i dette C programmet?


Anbefalte innlegg

a. Deklarer tabeller for å lagre følgende opplysninger for alle produktene:

 Innkjøpspris

 Utsalgspris

 Antall enheter på fryserommet.

b. Lag en løkke som leser inn innkjøpspris og antall enheter på fryserommet. Utsalgsprisen beregnes ved å legge til enten 50% eller 100% av innkjøpspris. 50% dersom innkjøpspris er over 30 kroner og 100% dersom innkjøpspris under 30 kroner.

c. Beregn den totale fortjenesten hvis hele lageret selges ut.

 

DETTE ER OPPGAVEN OG JEG TRODDE JEG VAR I MÅL MED DENNE KODEN, MEN PROGRAM VIL REGNE FEIL NÅR JEG TASTER INN 1 SOM INNKJØPSPRIS OG DEN PRØVER Å LEGGE TIL 50% MEN DA BLIR SVARET 1 OG IKKE 1.5.

I ALLE ANDRE TILFELLER VIL UTSALGSPRIS BLI EN INT F.EKS 2 * 1,5 = 3

 

VIL TRO DETTE HAR NOE MED DEKLARERING AV FLOAT ISTEDENFOR INT MEN SER IKKE HELT HVA JEG SKAL ENDRE PÅ FOR Å GJØRE DET ENKLEST MULIG.

FORSLAG?

 

#include <stdio.h>

#define ANTALL_PRODUKTER 10

 

int main()

{

int innkjopspris[ANTALL_PRODUKTER];

int utsalgspris[ANTALL_PRODUKTER];

int enheterFryseRom[ANTALL_PRODUKTER];

 

int teller;

int totalFortjeneste = 0;

 

for(teller = 0 ; teller < ANTALL_PRODUKTER ; teller++)

{

printf("Les inn innkjopspris pa produkt nr %d\n" , teller+1);

scanf("%d" , &innkjopspris[teller]);

 

printf("Les inn lagerantall pa produkt nr %d\n" , teller+1);

scanf("%d" , &enheterFryseRom[teller]);

 

if (enheterFryseRom[teller] <= 30)

{

utsalgspris[teller] = (innkjopspris[teller]) * 1.5;

printf("utsalgspris for produkt %d er %d\n\n" , teller + 1 , utsalgspris[teller]);

}

 

else if (enheterFryseRom[teller] > 30)

{

utsalgspris[teller] = (innkjopspris[teller]) * 2.0;

printf("utsalgspris for produkt %d er %d\n\n" , teller + 1 , utsalgspris[teller]);

}

 

totalFortjeneste = totalFortjeneste + ( (utsalgspris[teller] - innkjopspris[teller]) * enheterFryseRom[teller] );

}

 

printf("Dersom hele lageret blir solgt ut vil fortjenesten vare kr %d" , totalFortjeneste);

 

getchar();

return 0;

}

Lenke til kommentar
Videoannonse
Annonse

#include <stdio.h>
#define ANTALL_PRODUKTER 2

int main()
{
float innkjopspris[ANTALL_PRODUKTER];
float utsalgspris[ANTALL_PRODUKTER];
int enheterFryseRom[ANTALL_PRODUKTER];

int teller;
double totalFortjeneste = 0;

for(teller = 0; teller < ANTALL_PRODUKTER; teller++) {
 printf("Les inn innkjopspris pa produkt nr %d\n" , teller+1);
 scanf("%f" , &innkjopspris[teller]);
 
 printf("Les inn lagerantall pa produkt nr %d\n" , teller+1);
 scanf("%d" , &enheterFryseRom[teller]);
 
 if (innkjopspris[teller] <= 30) {
 	utsalgspris[teller] = innkjopspris[teller] * 1.5;
 }  
 else if (innkjopspris[teller] > 30) {
 	utsalgspris[teller] = innkjopspris[teller] * 2.0;
 }

 printf("utsalgspris for produkt %d er %.2f\n\n" , teller + 1 , utsalgspris[teller]);
 
 totalFortjeneste = totalFortjeneste + ( (utsalgspris[teller] - innkjopspris[teller]) * enheterFryseRom[teller] );
}

printf("Dersom hele lageret blir solgt ut vil fortjenesten vare kr %.2f\n" , totalFortjeneste);

getchar();
return 0;
}

 

%f i scanf() leser inn flytetall (float).

%.2f i printf() skriver ut flytetall (float) med 2 desimaler bak komma.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...