用c语言输入一个二维数组再顺时针输出
答案:1 悬赏:80 手机版
解决时间 2021-02-28 16:13
- 提问者网友:抽煙菂渘情少年
- 2021-02-27 19:42
用c语言输入一个二维数组再顺时针输出
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-02-27 19:49
#include "stdio.h"
void PrintMatrixClockwisely(int(*a)[5], int row, int col)
{
if(a == NULL|| row <= 0|| col <= 0)
return;
int i = 0, j = 0, k = 0;
for(i = 0; i < row/2 + row%2; i++){
for(j = i; j < col - i; j++){
printf("%d ",a[i][j]);
}
j--;
for(k = i + 1; k < row - i; k ++)
printf("%d ",a[k][j]);
k=row - i - 1;
j=col - i - 2;
for(; j >= i; j--)
printf("%d ",a[k][j]);
k = row - i - 2;
j = i;
for(; k >i; k--)
printf("%d ",a[k][j]);
}
}
int main(){
int a[5][5];
int k = 1,row=5,col=5;
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++)
a[i][j] = k++;
}
for(int i = 0; i < row ;i++){
for(int j = 0; j < col; j++)
printf("%4d ", a[i][j]);
printf("\n");
}
PrintMatrixClockwisely(a, row, col);
}
void PrintMatrixClockwisely(int(*a)[5], int row, int col)
{
if(a == NULL|| row <= 0|| col <= 0)
return;
int i = 0, j = 0, k = 0;
for(i = 0; i < row/2 + row%2; i++){
for(j = i; j < col - i; j++){
printf("%d ",a[i][j]);
}
j--;
for(k = i + 1; k < row - i; k ++)
printf("%d ",a[k][j]);
k=row - i - 1;
j=col - i - 2;
for(; j >= i; j--)
printf("%d ",a[k][j]);
k = row - i - 2;
j = i;
for(; k >i; k--)
printf("%d ",a[k][j]);
}
}
int main(){
int a[5][5];
int k = 1,row=5,col=5;
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++)
a[i][j] = k++;
}
for(int i = 0; i < row ;i++){
for(int j = 0; j < col; j++)
printf("%4d ", a[i][j]);
printf("\n");
}
PrintMatrixClockwisely(a, row, col);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯