输入一个5行4列的二维数组,将数组里所有元素按从小到大顺序排列后输出。

#include"stdio.h"voidbubble(floata[]){inti,j;floattemp;for(i=0;i<19;i++){for(j=0;j<19... #include"stdio.h"
void bubble(float a[]){
int i,j;
float temp;
for(i=0;i<19;i++)
{for(j=0;j<19-i;j++)
if(a[j]>a[j+1])
{temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
void main()
{float a[5][4],b[20],(*p)[4];
int i,j,m,n,t,h=0;
p=a;
for(i=0;i<5;i++){
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(m=0;m<5;m++){
for(n=0;n<4;n++)
b[h]=*(*(p+m)+n);
h++;
}
bubble(b);
for(t=0;t<20;t++)
printf("%f",b[t]);
}
}

编译通过,但运行有误,请指点
展开
 我来答
金色潜鸟
2012-12-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5682万
展开全部
给你简化了一些。

void bubble(float *a){int i,j;float temp;
for(i=0;i<19;i++){
for(j=i+1;j<20;j++)if(a[i]>a[j])
{temp=a[j];a[j]=a[i]; a[i]=temp;}}}

void main(){float a[5][4],b[20],(*p)[4];
int i,j,m,n,t,h=0; p=a;
for(i=0;i<5;i++)for(j=0;j<4;j++) scanf("%f",&a[i][j]);

bubble(&a[0][0]);
for(i=0;i<5;i++)for(j=0;j<4;j++) printf("%f ",a[i][j]);
}
追问
(b[20]多余了吧)
匿名用户
2012-12-12
展开全部
#include"stdio.h"
void bubble(float a[]){
int i,j;
float temp;
for(i=0;i<20;i++)
{for(j=0;j<19-i;j++)
if(a[j]>a[j+1])
{temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
void main()
{float a[5][4],b[20],(*p)[4];
int i,j,m,n,t,h=0;
p=a;
for(i=0;i<5;i++){
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
}
for(m=0;m<5;m++){
for(n=0;n<4;n++)
{
b[h]=*(*(p+m)+n);
h++;
}
}
bubble(b);
for(t=0;t<20;t++)
printf("%g ",b[t]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
染指流年花已开
2012-12-12
知道答主
回答量:8
采纳率:0%
帮助的人:1.2万
展开全部
选择排序中第二个for语句中j初值错误,下次写仔细点就好了
追问
这不是选择排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式