用c语言输入一个二维数组再顺时针输出
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
#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);
}
追问
非常感谢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询