暑假里面没事做 些两道高中时候没写出来的程序
仅供参考、学习
对角线输出矩阵
main()
{int x=1,y=6,s=1,i,k,j,x1,y1,a[6][6];
for(i=1;i<6;i++)
for (j=1;j<6;j++) a[i][j]=0;
for (i=1;i<10;i++)
{ if (i>5) {k=10-i;x=++x;} else {k=i;y=--y;}
x1=x;y1=y;
for(j=1;j<=k;j++) a[x1++][y1++]=s++;
}
for (i=1;i<6;i++)
{printf("\n"); for (j=1;j<6;j++) printf("%2d ",a[i][j]);}
}
输出样式(已在TC上调试过):
11 7 4 2 1
16 12 8 5 3
20 17 13 9 6
23 21 18 14 10
25 24 22 19 15
蛇形矩阵
main()
{int x=1,y=6,s=1,s1=1,i,k,j,x1,y1,a[6][6];
for(i=1;i<6;i++)
for (j=1;j<6;j++) a[i][j]=0;
for (i=1;i<10;i++)
{ if (i>5) {k=10-i;x=++x;s1=s+9-i;} else {k=i;y=--y;s1=s+i-1;}
x1=x;y1=y;
if ((i+1)%2==0) for(j=1;j<=k;j++) a[x1++][y1++]=s++;
else for (j=1;j<=k;j++) {a[x1++][y1+]=s1--;s=s+1;}
}
for (i=1;i<6;i++)
{printf("\n"); for (j=1;j<6;j++) printf("%2d ",a[i][j]);}
}
输出样式(已在TC上调试过):
11 10 4 3 1
19 12 9 5 2
20 18 13 8 6
24 21 17 14 7
25 23 22 16 15