定义二维数组保存一个4行4列的方阵

定义二维数组保存一个4行4列的方阵,方阵中各元素的值 由键盘输入,要求将方阵的除主对角线外的上三角部分的每个元素的值加2,下三角部分的每个元素的值减2,然后输出改变后的方阵。

第1个回答  2012-11-26
#include<stdio.h>
void main()
{
int data[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{scanf("%d",&data[i][j]);
if(i>j) data[i][j]-=2;
if(i<j) data[i][j]+=2;
}
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%d ",data[i][j]);
printf("\n");
}
}追问

为什么创建的时候有错呢

追答

哪里有错,代码可以正确运行

第2个回答  2012-11-26
#include"stdio.h"
main()
{
int a[4][4];
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ if(j>i) a[i][j]+=2;
if(j<i) a[i][j]-=2;}
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");}

}本回答被提问者采纳
第3个回答  2012-11-26
#include <stdio.h>
int main()
{
int a[4][4];
int i,j;

for(j=0;j<4;j++)
for(i=0;i<4;i++)
scanf("%d",&a[i][j]);

int temp=0 ;
for(j=0;j<4;j++)
for(i=0;i<4;i++)
{ if(temp%4==0)printf("\n");

printf("%3d",a[i][j]);

temp++;
}

for(j=0;j<4;j++)
for(i=j+1;i<4;i++)
{
a[j][i]-=2;
a[i][j]+=2;
}

printf("\n修改后方阵:\n");
temp=0;
for(j=0;j<4;j++)
for(i=0;i<4;i++)
{ if(temp%4==0)printf("\n");

printf("%3d",a[i][j]);

temp++;
}

return 0;
}本回答被网友采纳