drbaron Skrevet 29. oktober 2003 Del Skrevet 29. oktober 2003 Har et lite problem med et c program jeg lager. Når jeg kjører programmet hopper den over det som står med uthevet skrift under, noe ikke jeg kan begripe. Programmet skal jo stoppe opp og vente på inntasting når det kommer en scanf. FORSLAG??? #include <stdio.h> #define SIZE 10 int main() { int teller , sumAlder = 0; int elevAlder[10]; float gjennomsnittsAlder; char avbryt = 'j'; char endring; for (teller= 0 ; teller < SIZE ; teller++) { printf("Tast inn alder til student nr %d\n" , teller+1); scanf("%d" , &elevAlder[teller]); sumAlder = sumAlder + elevAlder[teller]; } gjennomsnittsAlder = (float)sumAlder/(SIZE); printf("\nGjennomsnittsalder: %.2f\n\n" , gjennomsnittsAlder); while (avbryt != 'n') { printf("Angi index nr pa element i tabellen du vil se verdien av:\n"); scanf("%d" , &teller); printf("\nelement nr %d har verdien %d" , teller , elevAlder[teller]); printf("\n\nOnsker du a endre verdien? (J/N)\n"); scanf("%c" , &endring); if ((endring == 'j') || (endring == 'J')) { printf("Angi ny verdi pa element nr %d" , teller); scanf("%d" , &elevAlder[teller]); gjennomsnittsAlder = (float)sumAlder/(SIZE); printf("Nytt gjennomsnitt etter endring er %f" , gjennomsnittsAlder); } printf("Onsker du a sjekke et element til tast alt annet enn n"); scanf("%c" , &avbryt); } getchar(); return 0; } Lenke til kommentar
kattemat Skrevet 30. oktober 2003 Del Skrevet 30. oktober 2003 Her har du en versjon som bruker den mere "safe" fgets(3) #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define SIZE 10 int main(int argc, char **argv) { int teller , sumAlder = 0; int elevAlder[10]; char tmp_alder[10][5]; float gjennomsnittsAlder; char avbryt[2]; char endring[2]; for (teller= 0; teller < SIZE; teller++) { printf("Tast inn alder til student nr %d\n" , teller+1); fgets(tmp_alder[teller], 5, stdin); elevAlder[teller] = atoi(tmp_alder[teller]); sumAlder = sumAlder + elevAlder[teller]; } gjennomsnittsAlder = (float)sumAlder/(SIZE); printf("\nGjennomsnittsalder: %.2f\n\n" , gjennomsnittsAlder); avbryt[0] = 'j'; while (avbryt[0] != 'n') { printf("Angi index nr pa element i tabellen du vil se verdien av:\n"); fgets(tmp_alder[0], 5, stdin); teller = atoi(tmp_alder[0]); printf("\nelement nr %d har verdien %d\n" , teller , elevAlder[teller-1]); printf("\nOnsker du a endre verdien? (J/N)\n"); fgets(endring, 3, stdin); if ((endring[0] == 'j') || (endring[0] == 'J')) { printf("Angi ny verdi pa element nr %d: " , teller); sumAlder -= elevAlder[teller-1]; fgets(tmp_alder[0], 5, stdin); elevAlder[teller-1] = atoi(tmp_alder[0]); sumAlder += elevAlder[teller-1]; gjennomsnittsAlder = (float)sumAlder/(SIZE); printf("Nytt gjennomsnitt etter endring er %f\n" , gjennomsnittsAlder); } printf("Onsker du a sjekke et element til tast alt annet enn n\n"); fgets(avbryt, 3, stdin); } return 0; } 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å