2014-09-06 9 views
0

을 사용하여 euro에 사용자 입력을 할당하면 0이됩니다. 왜 이런 식으로 행동하는지 파악할 수 없습니다.float 변수가 0으로 유지됩니다

float euro; 
int main(void){ 

    printf("Ange euro: "); 
    scanf("%d", &euro); 
    printf("%d", euro); 

    return 0; 
} 
+5

가 정의되어 있지 않습니다. '% d'은 정수의 형식 지정자입니다. '% f '를 사용하십시오. –

+0

부동 값을 받아들이려면'% f'을 사용하십시오. – user1336087

+2

컴파일러 경고가 완전히 활성화되지 않았거나 약한 컴파일러를 사용 중입니다. 시간을 절약하기 위해 경고가 _ 발생했습니다. 모든 경고를 활성화하거나 새로운 컴파일러를 얻는 것을 고려하십시오. – chux

답변

3

사용 %f 지정 %f로는 %d 정수에 사용됩니다.

#include<stdio.h> 

float euro; 
int main(void){ 

    printf("Ange euro: "); 
    scanf("%f", &euro); 
    printf("%.2f\n", euro); 

    return 0; 
} 
1

올바른 형식 지정자를 사용해야합니다. 변경 형식 지정자 %d 부동 소수점 값에 대한

scanf("%f", &euro); 
    printf("%f", euro); 
1

euro를 float 변수로 선언 했으므로 적절한 형식 지정자가 필요합니다. 부유물의 경우 %f입니다.

여기 printfscanf 문에 대한 형식 지정자의 좋은 목록은 다음과 같습니다 당신이 무슨 일을하는지 http://www.cplusplus.com/reference/cstdio/printf/

관련 문제