mboost-dp1

Maksimumtal i C-program (scanf)


Gå til bund
Gravatar #1 - BjarniM
16. feb. 2009 09:03
Jeg har brug for at sætte et maksimum på 360 grader for nedenstående kodeeksempel. Nogle gode idéer?

printf("Indtast Vindretning: ");
scanf("%f", &sidste->vindret);
Gravatar #2 - TullejR
16. feb. 2009 09:08
do {
printf("Indtast Vindretning: ");
scanf("%f", &sidste->vindret);
} while ( &sidste->vindret > 360);


You get the idea. Og hvis det slet ikke er det du vil, så kan du jo passende overveje at skrive hvad du rent faktisk vil opnå på en mere forståelig måde
Gravatar #3 - BjarniM
16. feb. 2009 09:19
#2:

Eftersom vindretningen i grader jo ikke kan være højere end 360, skal det ligeledes være maksimumværdien.
Gravatar #4 - thorjak
16. feb. 2009 09:22
#3
Det bliver den også der, hvis brugeren skriver et svar, ind der er over 360 grader vil han blive spurgt igen.

Der er ingen måde hvor du kan begrænse brugeren i hvad han kan skrive. Du kan kun validere det, og derefter spørge brugeren igen, og melde tilbage at der kun er 360 grader på en cirkel
Gravatar #5 - TullejR
16. feb. 2009 09:41
#3: SÅ det du vil, på letforståeligt dansk, er følgende:
Brugeren skal indtaste ET tal, der ikke må være over 360 grader. Tak. Så gættede jeg jo rigtigt.

http://www.keil.com/support/docs/1950.htm fortæller lidt mere om do-while med et konkret eksempel.
Gravatar #6 - arne_v
16. feb. 2009 15:01
#2

Jeg tror at der er en & for meget !
Gravatar #7 - BjarniM
16. feb. 2009 15:55
Ok.

Lige et spørgsmål mere. Hvad nu, hvis jeg også vil have tilføjet, at værdien heller ikke må være lavere end 0, altså negativ?
Gravatar #8 - arne_v
16. feb. 2009 16:23
while ( sidste->vindret < 0 || sidste->vindret > 360 )
Gravatar #9 - BjarniM
16. feb. 2009 16:45
#8:

Aahh, selvfølgelig, det burde jeg have vidst :)

Tak.
Gravatar #10 - Mort
16. feb. 2009 16:58
arne_v (8) skrev:
while ( sidste->vindret < 0 || sidste->vindret > 360 )


Bare for at være en flueknepper så bør det vel være:


while ( sidste->vindret < 0 || sidste->vindret >= 360 )


Da 0 og 360 er samme resultat.
Gravatar #11 - arne_v
16. feb. 2009 19:31
#10

0 og 360 er samme retning, men opgaven lød på:
- maksimum på 360
- ikke må være lavere end 0
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login