#include<stdio.h>
#define M 4
#define N 5
int main()
{
int i,j,k,m,a[M][N],b[MN];
printf("请输入一个45的二维数组:\n");
k=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[M][N]);
}
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
b[k]=a[M][N];
k++;
}
}
int r=0;
for(i=0;i<M*N-1;i++)
{
for(j=0;j<M*N-i-1;j++)
{
if(b[r]>b[r+1])
{
m=b[r];
b[r]=b[r+1];
b[r+1]=m;
}
}
}
int o=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
a[M][N]=b[o];
o++;
}
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%d\t",a[M][N]);
}
}
return 0;
}
看下哪里错了,帮修改下
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2021-12-02 15:54关注
排序的地方错了,应该用b[j]和b[j+1]进行比较,如下图所示:
代码修改如下:
#include<stdio.h> #define M 4 #define N 5 int main() { int i,j,k,m,a[M][N],b[M*N]; printf("请输入一个4*5的二维数组:\n"); k=0; for(i=0;i<M;i++) { for(j=0;j<N;j++) { scanf("%d",&a[M][N]); } } for(i=0;i<M;i++) { for(j=0;j<N;j++) { b[k]=a[M][N]; k++; } } int r=0; for(i=0;i<M*N-1;i++) { for(j=0;j<M*N-i-1;j++) { //修改的地方 if(b[j]>b[j+1])//if(b[r]>b[r+1]) { m=b[j];//b[r]; b[j]=b[j+1];//b[r]=b[r+1]; b[j+1]=m;;//b[r+1]=m; } } } int o=0; for(i=0;i<M;i++) { for(j=0;j<N;j++) { a[i][j]=b[o]; o++; } } for(i=0;i<M;i++) { for(j=0;j<N;j++) { printf("%d\t",a[i][j]); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
- ¥30 数字电源对DSP芯片的具体要求
- ¥20 antv g6 折线边如何变为钝角
- ¥30 如何在Matlab或Python中 设置饼图的高度
- ¥15 nginx中的CORS策略应该如何配置
- ¥30 信号与系统实验:采样定理分析
- ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
- ¥20 Vite 打包的 Vue3 组件库,图标无法显示
- ¥15 php 同步电商平台多个店铺增量订单和订单状态
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别