C语言 求平均数然后输出一个保留2位小数的结果,大神帮忙看看怎么改。
题目:计算评分【要求】N=7个评委的评分从键盘输入(10分制,即评委的评分值最大和最小可为10和0,检查输入的合理性)。评分计算方法:去掉一个最高分、去掉一个最低分,余下...
题目:计算评分
【要求】N=7个评委的评分从键盘输入(10分制,即评委的评分值最大和最
小可为10和0,检查输入的合理性)。评分计算方法:去掉一个最高分、去掉
一个最低分,余下评委打分的平均分为结果,输出结果要求到小数点后两位。
这个是我写的程序:
int i=0, j=0, n=0, min=0, max=0,sum=0;
int a[7];
for (i = 0; i < 7; i++)
scanf_s("%d,", &a[i]);
if (min>a[i])
{
min = a[i + 1];
a[i] = min;
a[i] = a[i + 1];
}
if (max < a[j])
{
max = a[j - 1];
a[j] = max;
a[j] = a[j - 1];
}
{
min = a[1];
max = a[7];
}
sum = a[2] + a[3] + a[4] + a[5] + a[6];
n = (sum / 5);
printf("%5.2f",(float) n);
return 0;
}
问题是:在这个程序里面如果想将最后结果保留2位小数,强制转换成float型,后面的小数丢失了,把int型改为float型,编译器报错(看不懂英文,不知道报什么错了),大神帮忙看看怎样改。。 展开
【要求】N=7个评委的评分从键盘输入(10分制,即评委的评分值最大和最
小可为10和0,检查输入的合理性)。评分计算方法:去掉一个最高分、去掉
一个最低分,余下评委打分的平均分为结果,输出结果要求到小数点后两位。
这个是我写的程序:
int i=0, j=0, n=0, min=0, max=0,sum=0;
int a[7];
for (i = 0; i < 7; i++)
scanf_s("%d,", &a[i]);
if (min>a[i])
{
min = a[i + 1];
a[i] = min;
a[i] = a[i + 1];
}
if (max < a[j])
{
max = a[j - 1];
a[j] = max;
a[j] = a[j - 1];
}
{
min = a[1];
max = a[7];
}
sum = a[2] + a[3] + a[4] + a[5] + a[6];
n = (sum / 5);
printf("%5.2f",(float) n);
return 0;
}
问题是:在这个程序里面如果想将最后结果保留2位小数,强制转换成float型,后面的小数丢失了,把int型改为float型,编译器报错(看不懂英文,不知道报什么错了),大神帮忙看看怎样改。。 展开
4个回答
展开全部
修改后的代码如下:
#include <stdio.h>
int main()
{
//int i=0, j=0, n=0, min=0, max=0,sum=0;
int i=0, j=0;
double n=0,min=0, max=0,sum=0;
//int a[7];
double a[7];
for (i = 0; i < 7; i++)
scanf("%lf", &a[i]);
if (min>a[i])
{
min = a[i + 1];
a[i] = min;
a[i] = a[i + 1];
}
if (max < a[j])
{
max = a[j - 1];
a[j] = max;
a[j] = a[j - 1];
}
{
min = a[1];
max = a[7];
}
sum = a[2] + a[3] + a[4] + a[5] + a[6];
n = (sum / 5);
printf("%5.2f", n);
return 0;
}
#include <stdio.h>
int main()
{
//int i=0, j=0, n=0, min=0, max=0,sum=0;
int i=0, j=0;
double n=0,min=0, max=0,sum=0;
//int a[7];
double a[7];
for (i = 0; i < 7; i++)
scanf("%lf", &a[i]);
if (min>a[i])
{
min = a[i + 1];
a[i] = min;
a[i] = a[i + 1];
}
if (max < a[j])
{
max = a[j - 1];
a[j] = max;
a[j] = a[j - 1];
}
{
min = a[1];
max = a[7];
}
sum = a[2] + a[3] + a[4] + a[5] + a[6];
n = (sum / 5);
printf("%5.2f", n);
return 0;
}
展开全部
用double进行浮点运算,读入、输出的时候用%lf
追问
就是把所有的int改为double?
追答
恩,最好不要用float进行浮点运算
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我瞎了...
追问
哈哈?
追答
解决了嘛?~没解决我再看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |