鱼C论坛

 找回密码
 立即注册
查看: 2164|回复: 18

多了一个换行怎么解决

[复制链接]
发表于 2021-11-29 16:39:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 牵风 于 2021-11-29 17:08 编辑

#include <stdio.h>

int main() {
        int n,m;
        scanf("%d %d",&n,&m);
        int a[n][m],b[m][n];
        for(int i=0; i<n; i++)
                for(int j=0; j<m; j++)
                        scanf("%d",&a[i][j]);
        for(int i=0; i<m; i++)
                for(int j=0; j<n; j++)
                        b[i][j]=a[j][i];

        for(int i=0; i<m; i++) {

                for(int j=0; j<n; j++)
                        printf("%d ",b[i][j]);
                printf("\n");
        }

        for(int i=0; i<n; i++) {
                for(int j=0; j<m; j++)
                        printf("%d ",a[i][j]);
                printf("\n");
        }

}
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-29 16:57:31 | 显示全部楼层
你是指在输入的时候多一个换行吗?
如果是的换就在scanf("%d",&a[i][j]);
后面加一个:getchar();
把这个‘\n’,从输入缓冲区中读出来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 16:59:24 | 显示全部楼层
        编译、运行实况:
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 3 4
  4. 1 2 3 4
  5. 5 6 7 8
  6. 9 10 11 12
  7. 1 5 9
  8. 2 6 10
  9. 3 7 11
  10. 4 8 12
  11. 1 2 3 4
  12. 5 6 7 8
  13. 9 10 11 12

  14. D:\0002.Exercise\C>
复制代码

        这里面的哪个换行是多余的,请问?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:16:13 | 显示全部楼层
你是指你的输出最后一行的结果比给的例子差了一行?
这个只是单纯地因为你输出的结果之间的间隙要比例子的间隙大一点点的;
然后这么多行,一点点的差距累加起来,所以最后一行看起来就多了一行;
并不是你代码的问题、
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:18:57 | 显示全部楼层
番杰 发表于 2021-11-29 17:16
你是指你的输出最后一行的结果比给的例子差了一行?
这个只是单纯地因为你输出的结果之间的间隙要比例子的 ...

主要oj过不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:28:12 | 显示全部楼层


但是你这个程序确实是没有问题呀
至少我是没看出来,有编译器编译也没开出来啥问题;
我没有用过OJ;也不知道它是咋进行判断的;
但是我觉得你这程序没有问题;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:31:10 | 显示全部楼层
         楼主,贴一下题目要求。过 OJ 必须得满足题目要求。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:32:09 | 显示全部楼层
jackz007 发表于 2021-11-29 17:31
楼主,贴一下题目要求。过 OJ 必须得满足题目要求。

输入一个二维数组a,然后将改二维数组中行和列中的元素互换,存到另外一个二维数组b中,然后将b与a按一定格式分别输出
输入
测试数据由多组组成,每一组的格式如下:
第一行输入两个整数n、m(n,m<100),表示二维数组大小a[n][m]
接下来有n行,每行有m个整数(第i行的第j个数表示a[i-1][j-1]的值),数与数之间空格隔开(见样例输入)
输出
对于每组测试数据首先输出数组b(格式参考样例输出),每个数后面带一个空格,接着输出数组a,格式同数组b(见样例输出)
样例输入 Copy
2 3
1 2 3
4 5 6
样例输出 Copy
1 4
2 5
3 6
1 2 3
4 5 6
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:34:25 | 显示全部楼层
超时吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:39:29 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:43:31 | 显示全部楼层

就是过不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:48:32 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-29 17:50 编辑


        试试这个呢
  1. #include <stdio.h>

  2. void show(int d[] , int n , int m)
  3. {
  4.         int c , i , j                                                                ;
  5.         for(c = i = 0 ; i < n ; i ++) {
  6.                 printf("%d" , d[c ++])                                               ;
  7.                 for(j = 1 ; j < m ; j ++) printf(" %d" , d[c ++])                    ;
  8.                 printf("\n")                                                         ;
  9.         }
  10. }

  11. int main()
  12. {
  13.         int i , j , n , m                                                            ;
  14.         scanf("%d%d" , & n , & m)                                                    ;
  15.         int a[n][m] , b[m][n]                                                        ;
  16.         for(i = 0 ; i < n ; i ++) for (j = 0 ; j < m ; j ++) scanf("%d" , & a[i][j]) ;
  17.         for(i = 0 ; i < n ; i ++) for(j = 0 ; j < m ; j ++) b[j][i] = a[i][j]        ;
  18.         show(b[0] , m , n)                                                           ;
  19.         show(a[0] , n , m)                                                           ;
  20. }
复制代码

        编译、运行实况:
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 2 3
  4. 1 2 3
  5. 4 5 6
  6. 1 4
  7. 2 5
  8. 3 6
  9. 1 2 3
  10. 4 5 6

  11. D:\0002.Exercise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:51:33 | 显示全部楼层
jackz007 发表于 2021-11-29 17:48
试试这个呢

        编译、运行实况:

还是一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 17:55:28 | 显示全部楼层

       OJ 回应的错误点或原因是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 17:59:34 | 显示全部楼层
jackz007 发表于 2021-11-29 17:55
OJ 回应的错误点或原因是什么?

就是那张图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 18:06:46 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int n, m, x;
  5.     scanf("%d%d", &n, &m);
  6.     int a[n][m];
  7.     int b[m][n];
  8.     for(size_t i = 0; i < n; i++){
  9.         for(size_t j = 0; j < m; j++){
  10.             scanf("%d", &x);
  11.             a[i][j] = x;
  12.             b[j][i] = x;
  13.         }
  14.     }
  15.     for(size_t i = 0; i < m; i++){
  16.         for(size_t j = 0; j < n-1; j++){
  17.             printf("%d ", b[i][j]);
  18.         }
  19.         printf("%d", b[i][n-1]);
  20.         printf("\n");
  21.     }
  22.    
  23.     for(size_t i = 0; i < n; i++){
  24.         for(size_t j = 0; j < m-1; j++){
  25.             printf("%d ", a[i][j]);
  26.         }
  27.         printf("%d", a[i][m-1]);
  28.         printf("\n");
  29.     }
  30.     return 0;
  31. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 18:21:59 | 显示全部楼层

        这就是那张图,哪个地方多出了一个换行?
  1. D:\0002.Exercise\C>x
  2. 10 9
  3. 1 2 3 4 5 6 7 8 9
  4. 0 2 3 4 5 6 7 8 9
  5. 2 5 4 6 8 4 5 3 1
  6. 2 5 4 6 8 2 1 8 4
  7. 2 5 4 6 8 4 5 3 1
  8. 0 2 3 4 5 6 7 8 9
  9. 1 2 3 4 5 6 7 9 0
  10. 0 2 3 4 5 6 8 9 5
  11. 2 5 4 8 4 5 3 1 1
  12. 2 5 4 6 8 2 8 4 6
  13. 1 0 2 2 2 0 1 0 2 2
  14. 2 2 5 5 5 2 2 2 5 5
  15. 3 3 4 4 4 3 3 3 4 4
  16. 4 4 6 6 6 4 4 4 8 6
  17. 5 5 8 8 8 5 5 5 4 8
  18. 6 6 4 2 4 6 6 6 5 2
  19. 7 7 5 1 5 7 7 8 3 8
  20. 8 8 3 8 3 8 9 9 1 4
  21. 9 9 1 4 1 9 0 5 1 6
  22. 1 2 3 4 5 6 7 8 9
  23. 0 2 3 4 5 6 7 8 9
  24. 2 5 4 6 8 4 5 3 1
  25. 2 5 4 6 8 2 1 8 4
  26. 2 5 4 6 8 4 5 3 1
  27. 0 2 3 4 5 6 7 8 9
  28. 1 2 3 4 5 6 7 9 0
  29. 0 2 3 4 5 6 8 9 5
  30. 2 5 4 8 4 5 3 1 1
  31. 2 5 4 6 8 2 8 4 6

  32. D:\0002.Exercise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 21:55:23 | 显示全部楼层
jackz007 发表于 2021-11-29 18:21
这就是那张图,哪个地方多出了一个换行?

javascript:;
170800mipvvbybvivrrov8.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-29 21:56:02 | 显示全部楼层

就是这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 13:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表