黑盒测试的方法包括:C语言输出问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 09:22:39
程序如下:
main()
{int num1,num2,num3,sum;
float aver;
printf("Please input three numbers:");
scanf("%d,%d,%d",&num1,&num2,&num3); /*输入三个整数*/
sum=num1+num2+num3; /*求累计和*/
aver=sum/3.0; /*求平均值*/
printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
printf("sum=%d,aver=%f\n",sum,aver);
}

运行结果:
please input three numbers:52 23 25
num1=52,num2=0,num3=835
sum=887,aver=295.666656

输入的三个数和输出的结果为什么不同?
还是不行。
输入:25,25,28
结果为:num1=25,num2=25,num3=835

scanf("%d,%d,%d",&num1,&num2,&num3); /*输入三个整数*/
这个地方,%d,%d,%d你这三个$d之间用逗号隔开,这就认为规定了输入数时,不同的数用逗号来区分,所以你输入时改为:52,23,25 .一般编程时是不用逗号隔的...

求三个数的平均值,好象没你这么麻烦呀!
你的算法是错的

问题在于你的分隔符是",",而你在输入的时候是用的空格,两者要一致
如果你的输入改为:52,23,25
或者将语句改为:
scanf("%d %d %d",&num1,&num2,&num3); //中间为空格
那样就可以了!

应该在每个数输入之后家,
也就是52,23,25

rtewr vt b

还是我来说说吧!问题一出在3.0,你可以将3.0改为3.0f问题应该解决,这是由于3.0默认的数据类型是double而不是float,所以在你的数据计算结果中就有double转换float的浮点转换,8字节的double转换为4字节的float错误难免阿。
其次就是在源程序中要把
scanf("%d,%d,%d",&num1,&num2,&num3); /*输入三个整数*/
中的“,”全部去掉,因为这样在输入时间你要对不符合编译原理的“,”原样输入才行。