工资求和与平均数字问题
所有的变量规定的类型都是int,输入全是123,平均后为何是124?结果区----------------------------
请输入第1个月工资123
请输入第2个月工资123
请输入第3个月工资123
请输入第4个月工资123
请输入第5个月工资123
请输入第6个月工资123
124
Process returned 3 (0x3) execution time : 7.870 s
Press any key to continue.
------------------------------------
主代码区------------------------
{
for(i=1;i<7;i++)
{printf("请输入第%d个月工资",i);
scanf("%d",&salary);
sum+=salary;
}
printf("%d",sum/6);
}
------------------------------- sum一开始是0吗? 丶忘却的年少o 发表于 2017-10-4 10:42
sum一开始是0吗?
没有设定初始值,所以sum默认是0?
#include<stdio.h>
void main()
{
int i = 1;
int salary;
int sum;
for(i=1;i<7;i++)
{printf("请输入第%d个月工资",i);
scanf("%d",&salary);
sum+=salary;
}
printf("%d",sum/6);
} 谢melon 发表于 2017-10-4 11:41
没有设定初始值,所以sum默认是0?
#include
void main()
你的sum不是全局变量,编译器不会给你默认0的,是一个漫天跑的数,你可以多次执行看看,同样的输入,每次出来总会不太一样。
int num = 0; 改成这样。 谢谢
为什么把sum初始值赋0,最终结果就是123
而在不初始化sum的情况下都是124(已经试过十几次了) 谢melon 发表于 2017-10-4 12:24
谢谢
为什么把sum初始值赋0,最终结果就是123
而在不初始化sum的情况下都是124(已经试过十几次了)
编译器不一样吧,我的有时候会差很多。
因为你没规定它一定要多少呀,那它会默认一个很大的值或者按照编译器规定的值,不一定是0,你可以DEBUG看看sum一开始是多少。
别忘记点一下“最佳答案”哦{:10_303:} 本帖最后由 程序圆 于 2017-10-4 19:51 编辑
sum要赋值0哦。
我自己也嘚瑟了一下,填了两行代码,可以自己输入想计算多少个月的平均工资。
同为初学者,握手握手!
用的VC++6.0,WIN10系统,用了WIN7验证可用。
# include <stdio.h>
int main(void)
{
int i;//月份
float slr;//薪水数,有小数
float sum = 0;//工资总和
int month;//想要计算多少个月
printf("想要计算多少个月:");
scanf("%d", month);
for (i=1; i<month+1; ++i)
{
printf("请输入第%d个月的工资", i);
scanf("%f", &slr);
sum+=slr;
}
printf("平均工资是%f\n", sum / month );
return 0;
} 程序圆 发表于 2017-10-4 19:50
sum要赋值0哦。
我自己也嘚瑟了一下,填了两行代码,可以自己输入想计算多少个月的平均工资。
同为初学者 ...
加个联系方式,一起学习
页:
[1]