giegie666 发表于 2022-11-13 21:06:32

这样对吗,是不是行列没有互换

输入一个正整数n (1<n≤6),根据生成1个n*n的方阵,然后将该方阵转置(行列互换)后输出。

#include <stdio.h>
int main( )
{
    int i, j, n, t;
    int a;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
            a = i * n + j + 1;      
    for (i = 0; i < n; i++)            
      for (j = ; j < n; j++)
      {
            
t=a;

      }
    for (i = 0; i < n; i++)
    {
      for (j = 0; j < n; j++)
            printf("%4d", a);
      putchar('\n');
    }

    return 0;
}

tommyyu 发表于 2022-11-13 21:15:52

本帖最后由 tommyyu 于 2022-11-13 21:17 编辑

这里是不是少了一个 0

giegie666 发表于 2022-11-13 21:20:46

tommyyu 发表于 2022-11-13 21:15
这里是不是少了一个 0

#include <stdio.h>
int main( )
{
    int i, j, n, t;
    int a;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
            a = i * n + j + 1;      
    for (i = 0; i < n; i++)            
      for (j =0 ; j < n; j++)
      {
            
t=a;

      }
    for (i = 0; i < n; i++)
    {
      for (j = 0; j < n; j++)
            printf("%4d", a);
      putchar('\n');
    }

    return 0;
}
有的,漏了,最后输出没有转换

giegie666 发表于 2022-11-13 21:21:46

giegie666 发表于 2022-11-13 21:20
#include
int main( )
{


将该方阵转置(行列互换)后输出。

tommyyu 发表于 2022-11-13 21:26:30

giegie666 发表于 2022-11-13 21:21
将该方阵转置(行列互换)后输出。

我感觉只要能输出正确的结果就是正确的代码

giegie666 发表于 2022-11-13 21:30:15

tommyyu 发表于 2022-11-13 21:26
我感觉只要能输出正确的结果就是正确的代码

矩阵转换输出才达到要求

tommyyu 发表于 2022-11-13 21:35:37

giegie666 发表于 2022-11-13 21:30
矩阵转换输出才达到要求

我感觉如果这个是锻炼矩阵转化的能力的话,有必要用矩阵转化输出

或者是交给老师看的话,就应该使用老师所教的方法

如果这题是机器评测的话,怎么样写都无所谓,反正机器又不知道代码的运行逻辑,只要输出正确答案就可以

jackz007 发表于 2022-11-13 22:16:23

本帖最后由 jackz007 于 2022-11-13 22:23 编辑

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

D:\\C>x
8
12345678
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64

19 17 25 33 41 49 57
2 10 18 26 34 42 50 58
3 11 19 27 35 43 51 59
4 12 20 28 36 44 52 60
5 13 21 29 37 45 53 61
6 14 22 30 38 46 54 62
7 15 23 31 39 47 55 63
8 16 24 32 40 48 56 64

D:\\C>

jhq999 发表于 2022-11-13 22:17:07


    for(i=0; i<6; i+=1)
      for(j=i; j<6; j+=1)
      {
            t=a;
            a=a;
            a=t;
      }
页: [1]
查看完整版本: 这样对吗,是不是行列没有互换