gpt4 book ai didi

c - C中计算百分比的不同结果

转载 作者:行者123 更新时间:2023-12-04 12:33:32 24 4
gpt4 key购买 nike

我有一个奇怪的问题。我开始阅读 Let us C 并遇到了一个情况。当我给出以下代码时,percentage 变量,我得到 0 作为输出,但是当我修改公式时,它不会那样做。有人可以解释为什么吗?

int m1,m2,m3,m4,m5,aggregate;
float percentage;

printf("Please enter marks of the student in 5 subjects : \n");
scanf("%d %d %d %d %d",&m1,&m2,&m3,&m4,&m5);
aggregate = m1+m2+m3+m4+m5;
percentage= (aggregate/500)*100;

上面的输出如下:

Please enter marks of the student in 5 subjects : 
50 50 50 50 50
The aggregate of marks obtained by the student is : 250
The percentage of marks obtained by the student is : 0.000000*

但是如果我修改百分比公式如下: 百分比=合计/5;

我得到了正确的输出。

Please enter marks of the student in 5 subjects : 
50 50 50 50 50
The aggregate of marks obtained by the student is : 250
The percentage of marks obtained by the student is : 50.000000
RUN SUCCESSFUL (total time: 6s)*

有人可以解释为什么即使两者都使用相同的公式也会发生这种情况吗?

最佳答案

由于 aggregate 是一个 int,(aggregate/500)*100 将产生一个 int。更改为 (aggregate/500.0)*100aggregate/5.0

percentage= aggregate/5 “有效”的原因纯属运气。它不会与所有数字。当 aggregate 是 5 的倍数时,它会给出正确的结果。

还有,烧掉《Let us C》这本书。这非常糟糕。

关于c - C中计算百分比的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com