从键盘输入一个4×4的整数矩阵,以主对角线(\)为对称轴将左下角元素中较大者替换右上角对应元素,并将右上角含对称轴输出。
#include “stdio.h”
void main()
{int d[4][]={{0,0,0,0}},i,j; ★
printf(“\nPlease input 16 num: “);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf(“%d”,&d[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(d[i][j] < d[j][i]) d[j][i]=d[i][j]; ★
for(i=0;i<4;i++)
{printf(“\n\n\n\n\n”);/*为了保持每行的间隔与每列的相同*/
for(j=0;j<4;j++)
if(j > i) ★
printf(“\t%d”,d[i][j]);/*为了使位数不同的数输出依然保持三角型*/
else
printf(“\t”);
}
}
答案
int d[4][]={{0,0,0,0}},i,j; 改为 int d[4][4]={{0,0,0,0}},i,j;
for(i=0;i < 4;i++)
for(j=0;j < 4;j++)
if ( d[i][j] < d[j][i]) d[j][i]=d[i][j];
改为
for(i=0;i < 4;i++)
for(j=0;j < i;j++)
if(d[i][j] > d[j][i]) d[j][i]=d[i][j];
if(j > i) 改为 if(j >= i)
#include “stdio.h”
#include “conio.h”
void main( )
{
int d[4][4]={{0,0,0,0}},i,j;
printf(“\nPlease input 16 num: “);
for(i=0;i < 4;i++)
for(j=0;j < 4;j++)
scanf(“%d”,&d[i][j]);
for(i=0;i < 4;i++)
for(j=0;j < i;j++)
if(d[i][j]>d[j][i])
d[j][i]=d[i][j];
for(i=0;i < 4;i++)
{ printf(“\n\n\n\n\n”);/*为了保持每行的间隔与每列的相同*/
for(j=0;j < 4;j++)
if(j>=i)
printf(“\t%d”,d[i][j]);/*为了使位数不同的数输出依然保持三角型*/
else
printf(“\t”);
}
getch();
}
程序的执行结果如下
Please input 16 num: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 5 9 13
6 10 14
11 15
16
暂无评论内容