2016-12-12 2 views
-2

인 것을 찾을 수 없으면 k = 0이됩니다. 그것은 k = 0.8가 아니어야합니까? 코드에 어떤 문제가 있습니까?이 코드를 컴파일 한 후 오류가

#include <stdio.h> 
#include <math.h> 
void main() 
{ 
    int x=8; 
    int y=10; 
    int m=6; 
    float k; 
    k=x/y; 
    printf("k=%f",k); 
} 
+5

int/int = int. –

+0

때문에 코드를 암시 적으로 변환하기 때문에 실수를 정수로 변환하기 때문에 다음과 같이 수정하십시오.'k = (float) x/(float) y; printf ("k = % g", k);' – Raindrop7

답변

1

타입 캐스팅이 더 유용하고 간단 할 것입니다.

int x=8; 
    int y=10; 
    int m=6; 
    float k; 
    k=(float)x/y; 
    printf("k=%f",k); 
2

당신이 float에 분할의 결과를 할당하고 있지만은, 결과 자체는 정수로 계산됩니다. 이는 두 피연산자 모두가 int 유형이기 때문입니다.

이 문제를 해결 여러 가지 방법이 있습니다 - 예를 들어, 다음과 같이, 제수로 나누어 다음 k에 배당을 할당하고, 기준 :

int x=8; 
int y=10; 
int m=6; 
float k = x; 
k /= y; 
printf("k=%f",k); 
관련 문제