C语言数组旋转问题
下面程序的功能是将一个 4×4 的数组进行逆时针旋转 90 度后输出,要求原始数组的数据随机输入,新数组以 4 行 4 列的方式输出。
主要涉及知识点:二维数组的输入及输出、循环嵌套与二维数组的结合、输出的格式控制。
代码实现:
主要涉及知识点:二维数组的输入及输出、循环嵌套与二维数组的结合、输出的格式控制。
代码实现:
#include <stdio.h> int main(){ int a[4][4],b[4][4],i,j; /*a 存放原始数组数据,b 存放旋转后数组数据*/ printf("input 16 numbers: "); /*输入一组数据存放到数组 a 中,然后旋转存放到 b 数组中*/ for(i=0;i<4;i++){ for(j=0;j<4;j++){ scanf("%d",&a[i][j]); printf("%6d",a[i][j]); b[3-j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for(i=0;i<4;i++){ for(j=0;j<4;j++) printf("%6d",b[i][j]); printf("\n"); } return 0; }运行结果:
input 16 numbers: 1 34 6 4 56 2 5 6 9 12 23 23 46 77 12 34 1 34 6 4 56 2 5 6 9 12 23 23 46 77 12 34 array b: 4 6 23 34 6 5 23 12 34 2 12 77 1 56 9 46