
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);
}
想问一下这个程序哪里错了,为什么不能运行啊? 展开
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);
}
想问一下这个程序哪里错了,为什么不能运行啊? 展开
3个回答
展开全部
程序不能运行的主要原因是定义数组的时候用变量做下标,其他的错误我用注释给出了
#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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询