drbaron Skrevet 22. november 2003 Del Skrevet 22. november 2003 PROGRAMMET HOPPER UT ETTER AT JEG HAR TASTA INN EN CHAR I FORM AV v k eller h. Når scanf tar imot en char skal det vel være %c, en som nevnte at det skulle være %s i et annet program og da funka det faktisk. Har prøvd begge deler her men funker fortsatt ikke... #include <stdio.h> #define TIMEPRIS 400.00 //function prototypes void info(); void beregn(float , char); int main() { float timer; char arbeid; info(); printf("Angi antall timer\n"); scanf("%f" , &timer); printf("Angi type arbeid: vanlig , kveld , helg (v,k,h)"); scanf("%s" , &arbeid); beregn(timer , arbeid); getchar(); return 0; } void info() { printf("Dette programmet beregner pris pa handarbeid\n"); } void beregn(float antalltimer , char arbeidstype) { float pris; float timepris; if ((arbeidstype == 'v') || (arbeidstype == 'V')) { timepris = TIMEPRIS; } else if ((arbeidstype == 'k') || (arbeidstype == 'K')) { timepris = TIMEPRIS * 1.50; } else if ((arbeidstype == 'h') || (arbeidstype == 'h')) { timepris = TIMEPRIS * 2.00; } pris = timepris * antalltimer; printf("Total pris er %.2f" , pris); } Lenke til kommentar
MailMan13 Skrevet 22. november 2003 Del Skrevet 22. november 2003 [mailman@localhost ~]$ gcc test.c -o test [mailman@localhost ~]$ ./test Dette programmet beregner pris pa handarbeid Angi antall timer 4 Angi type arbeid: vanlig , kveld , helg (v,k,h)k Total pris er 2400.00[mailman@localhost ~]$ Hva er det som ikke virker? Lenke til kommentar
drbaron Skrevet 22. november 2003 Forfatter Del Skrevet 22. november 2003 Du som svarte på forrige post jeg hadde også fant jeg ut. Det jeg egentlig lurer på er hvorfor det forrige programmet funka når når brukte %s for å angi char??? Kan ikke begripe at det ikke skal være %c I dette programmet quiter programmet etter at jeg har angitt arbeidstype, rart det funka hos deg da........ Lenke til kommentar
jewel Skrevet 23. november 2003 Del Skrevet 23. november 2003 %s er string, alså setninger, mens %c er bare bokstaver, derav char. prøv og legg til en system("PAUSE"); Regner med at du bruker windows Lenke til kommentar
kattemat Skrevet 23. november 2003 Del Skrevet 23. november 2003 Husk at linjeskift "ligger igjen" i bufferet etter forrige scanf. En scanf("\n%c", &svar); bør fungere. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå