c语言输入一个正整数,打印n*n方阵

#include<stdio.h>voidmain(void){intn,i,j,sum,a[i][j];printf("请输入方阶的阶数n<n<=n<=6>:\n");... #include<stdio.h>
void main(void)
{
int n,i,j,sum,a[i][j];
printf("请输入方阶的阶数n<n<=n<=6>:\n");
scanf("%d",&n);
printf("请输入%d阶方阵各元素的值:\n",n);
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("%4d",a[i][j]);
printf("\n");
}printf("\n");
printf("该%d阶方阵为:\n",n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(i=j)
sum=sum+a[i][j];
}
printf("该方阵主对角线元素的和为%d",sum);
}
想问一下这个程序哪里错了,为什么不能运行啊?
展开
 我来答
我清子1B
推荐于2017-11-26 · TA获得超过1861个赞
知道小有建树答主
回答量:811
采纳率:80%
帮助的人:394万
展开全部
程序不能运行的主要原因是定义数组的时候用变量做下标,其他的错误我用注释给出了
#include<stdio.h>
int main()
{
int n,i,j,sum=0;//sum要初始化 
int a[6][6]={0};//数组不能用变量做下标 
printf("请输入方阶的阶数n<n<=n<=6>:\n");
scanf("%d",&n);
printf("请输入%d阶方阵各元素的值:\n",n);
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
/*这两句删除 
printf("%4d",a[i][j]);
printf("\n");*/
}
printf("\n");
printf("该%d阶方阵为:\n",n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(i==j)//判断相等是== 
sum=sum+a[i][j];
}
printf("\n该方阵主对角线元素的和为%d",sum);
}
金色潜鸟
2014-06-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:6654万
展开全部
一眼看到的错误 是 if(i==j) 不能是 if(i=j)
改正后再试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞火凌峰
2014-06-15 · TA获得超过179个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:187万
展开全部
把第 4 行的 a[i][j] 改为 a[6][6]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式