同Sample问题
本帖最后由 葳蕤银河 于 2022-4-9 20:29 编辑题目要求如下:
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
1 2 3 4
输出样例:
Sum = 10; Average = 2.5
互联网的广大朋友们,帮我看看这段代码问题错误在哪?
#include <stdio.h>
int main(void)
{
int a,b,c,d;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
int Sum;
double Average;
Sum=a+b+c+d;
Average=Sum*0.25;
printf("Sun=%d;Average=%.1f\n",Sum,Average);
return 0;
}
本帖最后由 葳蕤银河 于 2022-4-9 20:28 编辑
题目要求如下:
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
1 2 3 4
输出样例:
Sum = 10; Average = 2.5 $ cat main.c
#include <stdio.h>
int main(void)
{
int a,b,c,d;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
int Sum;
double Average;
Sum=a+b+c+d;
Average=Sum*0.25;
printf("Sun=%d;Average=%.1f\n",Sum,Average);
return 0;
}
$ gcc -g -Wall -o main main.c
$ ./main
1 2 3 4
Sun=10;Average=2.5
$
好像没错误吧,结果正确啊。 本帖最后由 jhq999 于 2022-4-10 06:30 编辑
printf("Sun=%d;Average=%.1lf\n",Sum,Average);//double 题目保证输入与输出均在整型范围内
#include <stdio.h>
int main(void)
{
printf ("求4个整数的和以及平均值;请输入4个整数(取值范围:-2147483648~2147483647),整数之间用空格隔开:\n");
int a = 0, b = 0, c = 0, d = 0;
int Sum = 0;
double Average = 0.0;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
int int_type_size = sizeof (a);
printf ("%d\n", int_type_size);//打印int类型所占字节数
int double_type_size = sizeof (double);
printf ("%d\n", double_type_size);//打印double类型所占字节数
//确保输入在整型范围之内,取值范围根据对应数据类型所占字节数计算出来的。可以百度查询
if (a < -2147483648 || a > 2147483647)
{
printf ("输入的第一个数不符合取值范围\n");
return -1;
}
if (b < -2147483648 || b > 2147483647)
{
printf ("输入的第二个数不符合取值范围\n");
return -2;
}
if (c < -2147483648 || c > 2147483647)
{
printf ("输入的第三个数不符合取值范围\n");
return -3;
}
if (d < -2147483648 || d > 2147483647)
{
printf ("输入的第四个数不符合取值范围\n");
return -4;
}
//确保输入在整型范围之内或浮点数范围之内,取值范围根据对应数据类型所占字节数计算出来的。可以百度查询
Sum = a + b + c + d;
Average = Sum * 0.25;
if (Sum < -2147483648 || Sum > 2147483647)
{
printf("输入的四个数的和不符合取值范围\n");
return -5;
}
if (Average < 1.7E-308 || Average > 1.7E+308)
{
printf ("平均值不符合取值范围\n");
return -6;
}
printf("Sun=%d;Average=%.1f\n", Sum, Average);
return 0;
} cjgank 发表于 2022-4-10 13:57
题目保证输入与输出均在整型范围内
#include
我当时也认为是取值范围的问题,但是你这个代码运行出来结果也不对。
参考答案是在main上一行加上int fact(int n);但我不懂这是啥意思{:10_266:}
参考答案:
#include <stdio.h>
int fact(int n);
int main()
{
int a,b,c,d,sum;
double average;
scanf("%d %d %d %d",&a,&b,&c,&d);
sum=a+b+c+d;
average=sum/4.0;
printf("Sum = %d; Average = %.1f",sum,average);
return 0;
} 本帖最后由 cjgank 于 2022-4-10 21:58 编辑
葳蕤银河 发表于 2022-4-10 21:43
我当时也认为是取值范围的问题,但是你这个代码运行出来结果也不对。
参考答案是在main上一行加上int fa ...
1. int fact (int n);//这是一条函数声明语句。
函数的定义部分和调用部分没有。那么这一条语句就是多余的。
2. 书本上的标准答案并非就是正确的。程序唯有实践出真知。
页:
[1]