一道C语言的题目,求大神解答。 5

题目描述:输入一个n*n的矩阵,要求计算对角线的平均值,结果保留两位小数。输入:输入只有一个用例,第一行表示矩阵行数(也是列数),接下来n行,每行n个整数,表示矩阵的元素... 题目描述:
输入一个n*n的矩阵,要求计算对角线的平均值,结果保留两位小数。
输入:
输入只有一个用例,第一行表示矩阵行数(也是列数),接下来n行,每行n个整数,表示矩阵的元素。
输出:
用一行输出主对角线元素的平均值,结果保留两位小数(四舍五入)。
样例输入:
3
1 2 3
4 5 6
7 8 9
样例输出:
5.00

下面是我的代码,赋值那里错了,我想问问应该怎么改。
#include <stdio.h>
int main()
{
int n,i,j,a,b,sum;
while(~scanf("%d",n))
{
int a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",a);
}
}
for(b=0;b<n;b++)
{
sum+=a[b][b];
}
printf("%.2f",(sum*0.1)/(2*n-1));
}
return 0;
}
展开
 我来答
沐子阳
2015-01-04 · TA获得超过786个赞
知道小有建树答主
回答量:677
采纳率:100%
帮助的人:346万
展开全部
while(~scanf("%d",n)).
~是什么
追问
和 while(scanf("%d",n)!=EOF)一个意思,都是用来输入多个测试用例的
追答
scanf("%d",n)应该是 &n
关键是 我都编译不过去啊

#include
int main()
{
int n,i,j,b,k=1;
float sum=0.0;
int a[100][100];
a[0][0]=k;
while(~scanf("%d",&n))
{
for(i=0;i
int main()
{
int n,i,j,b;
float sum=0.0;
int a[100][100];
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(b=0;b<n;b++)
{
sum+=a[b][b];
}
printf("%.2f\n",sum);
printf("%.2f",sum/n);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式