m0_62898910 2021-12-20 22:46 采纳率: 66.7%
浏览 20

我编写的二维数组排序不能运行

程序要求是将二维数组元素排列后输出,我的想法是将其转化为一维数组排序后再转化回来,但是当我输入数据后,它没有输出,这是怎么回事?

img

img


这个是我输入的结果,没有输出。怎么回事呢

img


#include<stdio.h>//a二维数组元素从小到大(先左右后上下)的排序
int main(){
    int a[50][50];
    int i, j, n, m;
    int k = 0;
    int b[];
    scanf("%d%d", &n, &m);//输入矩阵的长(n)和宽(m)
    for(i = 0; i < n; i++) {
        for(j = 0; j < m; j++) {
            scanf("%d", &a[i][j]);
        } 
    } //输入矩阵每一个元素的值
    for(i = 0; i < n; i++) {
        for(j = 0; j < m; j++) {
            b[k++] = a[i][j]; 
        } 
    }//将二维数组a转化为一维数组b
    i = j = 0;//清零,作另一个用途
    for(k = 0; k < n*m; k++) {
        if(b[k] > b[k + 1]) {
            i = b[k];
            b[k] = b[k + 1];
            b[k + 1] = i;
        } 
    } //对一维数组b进行冒泡法排序
    for(i = 0; i < n; i++) {
        for(j = 0; j < m; j++) {
            a[i][j] = b[i*m + j];
        } 
    } //将排序完的b数组元素依次填入二维数组a中
    for(i = 0; i < n; i++) {
        for(j = 0; j < m; j++) {
            printf("%d ", a[i][j]);
        } 
    } //输出a数组元素排列的结果
    return 0;
}

```

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-12-20 23:34
    关注

    int b[];这样不行;
    应该改为
    int b[2500];

    评论

报告相同问题?

问题事件

  • 修改了问题 12月20日
  • 修改了问题 12月20日
  • 修改了问题 12月20日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 minted包显示缩进符的问题
  • ¥15 根据图片连接电路51单片机proteus汇编语言仿真4位数码管静态显示
  • ¥15 某无向图的邻接矩阵如下所示 请画出该邻接矩阵的无向图。
  • ¥15 从A点出发,采用prim算法,画出下图的最小生成树
  • ¥15 UBENTU USB小票打印机通过Python-escpos打印
  • ¥15 .net项目集成阿里云智能语音SDK
  • ¥15 c#关于WPS中网格线隐藏的属性
  • ¥100 请教一道在hcl模拟器上配置ospf的题
  • ¥15 在Sqlserver 使用OPENQUERY查询链接数据库MySQL
  • ¥50 如何给网页加一个必须阅读几秒后才可以点击确定的公告弹窗