乐瑜 发表于 2020-11-7 12:44:26

C语言-循环问题

求助!循环这里应该怎么写才能达到题目的效果!!我的代码循环部分只能行或列满足
/*!!!
给一维数组a输入任何四个整数,并按下列规律输出。
例如,输入1、2、3、4,程序运行后输出以下方阵
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
*/
#include<stdio.h>
void main()
{
        int a;
        int i,j;
        for(i=0;i<4;i++){
                scanf("%d",&a);
        }
        for(i=0;i<4;i++){
                for(j=0;j<4;j++){
                        printf("%d ",a);
                }
                printf("\n");
        }
}

巴巴鲁 发表于 2020-11-7 12:52:47

应该还有其他办法
#include<stdio.h>
void main()
{
      int a = {1, 2, 3, 4};
      int i,j;
      for(i=0;i<4;i++){
                scanf("%d",&a);
      }
      for(i=0;i<4;i++){
                for(j=0;j<4;j++){
                        printf("%d ",a[(i+j)%4]); // 发现了这个规律
                }
                printf("\n");
      }
}

jackz007 发表于 2020-11-7 13:35:17

本帖最后由 jackz007 于 2020-11-7 13:36 编辑

#include<stdio.h>
main(void)
{
      int a , i , j                                                      ;
      for(i = 0 ; i < 4 ; i ++) scanf("%d" , & a)                        ;
      for(i = 0 ; i < 4 ; i ++) {
                printf("%d" , a[(i + j) % 4])                                 ;
                for(j = 1 ; j < 4 ; j ++) printf("        %d" , a[(i + j) % 4]) ;
                printf("\n")                                                ;
      }
}
      编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
1 2 3 4
1       2       3       4
2       3       4       1
3       4       1       2
4       1       2       3

乐瑜 发表于 2020-11-7 15:44:02

巴巴鲁 发表于 2020-11-7 12:52
应该还有其他办法

十分感谢{:5_110:}

乐瑜 发表于 2020-11-7 15:44:35

jackz007 发表于 2020-11-7 13:35
编译、运行实况:

十分感谢{:5_110:}
页: [1]
查看完整版本: C语言-循环问题