2014-04-01 28 views
3

我想避免此代码中的浮点错误。我想避免在C程序中的'浮点错误'

此代码的目的是获得“整数的平均值”,但“整数”的数量受到用户输入的限制。请帮帮我。

#include <stdio.h> 

int main(void) 
{ 
    int num=0; 
    int limit; 
    int result=0; 

    printf("number of integer: "); 
    scanf("&d", &limit); 

    while(num<limit) 
    { 
     int output; 
     printf("Input integer : "); 
     scanf("%d", &output); 
     result += output; 
     num++; 
    } 
    printf("average of total integer: %d \n", result/limit); 
    return 0; 
} 

谢谢您的阅读。

+0

这功课吗? – Jite

+0

没有作业,但我独自学习一本书。 – Irrationnelle

+3

它已经很好了。您不会执行任何浮点计算,因此不会出现浮点错误。 –

回答

3

当你分2个整数时,结果也是一个整数。

要返回一个浮点数,需要将其中一个参数转换为浮点数。

所以你的最后一行成为

printf("average of total integer: %f \n", result/(float)limit); 
+1

不要使用%d作浮点值 –

+0

@PaulR谢谢,忘记改变这个了 –

+0

谢谢你的回答! =) – Irrationnelle

1

由于两个integer划分的结果也是一个整数,所以它作为

printf("average of total integer: %f \n", result/(float)limit); 

当你输入转换的变量limit浮动发生的事情是该result将被隐式转换为float,因此结果为float

+1

另一个答案是在你的9分钟前,你的没有添加任何实质性消息。 – glglgl

+0

@glglgl我的网络已关闭。 – YakRangi