永发信息网

这个排序程序哪里错了?

答案:3  悬赏:80  手机版
解决时间 2021-05-08 12:58

#include "stdio.h"
#define size 5
void main()
{
int i,j,data[size],temp;
int m_d;
printf("\nplease input %d int:\n",size);
for(i=0;i<size;i++)
scanf("%d",&data[i]);

for(j=i+1;j<size;j++)
{ m_d=j;
if(data[i]>data[m_d])
temp=data[m_d];
data[m_d]=data[i];
data[i]=temp;

}
for(i=0;i<size;i++)
printf("%10d",data[i]);
}

最佳答案

你的程序没多大错误 可能是你粗心少写了几条语句 改正后如下:


#include <stdio.h>
#define size 5
int main() //我习惯让主函数返回int型的
{
int i,j,data[size],temp;
int m_d;
printf("\nplease input %d int:\n",size);
for(i=0;i<size;i++)
scanf("%d",&data[i]);
for(i=0;i<size;i++)//少了这条语句
for(j=i+1;j<size;j++)
{
m_d=j;
if(data[i]>data[m_d])
{
temp=data[m_d];
data[m_d]=data[i];
data[i]=temp;
}
}
for(i=0;i<size;i++)
printf("%10d",data[i]);
getchar();getchar();
}

全部回答

第九行的:scanf("%d",&data[i]);应该放到第十行:for(j=i+1;j<size;j++)语句里面

因为你这个程序执行完scanf("%d",&data[i]);后i的值会成为5,到执行下面for循环时i会从5算起而不是0

所以应该改为

.....

.....

for(i=0;i<size;i++) for(j=i+1;j<size;j++) { scanf("%d",&data[i]);

m_d=j; if(data[i]>data[m_d]) ........

.......

m_d=j+1;

不是 m_d=j;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ三国四孔装备的第四孔怎样不会爆
我下载了个“狸窝2.5.0.0版本的3GP视频转换器
出售旋舞男号 要的联系
能不能多弄点皮肤
沙尘暴是有什么原因引起的?
爱情感谢有你的句子,形容感谢别人对自己好的
QQ空间一打开就出错还放不了音乐
绵阳哪里有卖生石灰,木炭和活性炭这些啊?
天天向上:哪个主持人最幽默?然后哪个主持人
什么样的裤衩最好穿
舒克和贝塔他们不是说只有有帮忙叫一声就出现
汇景南路在哪里啊,我有事要去这个地方
自考每门课多少分才可以拿到学士学位
怎样才能躲避一个爱你,但你不爱她的人
口香糖粘在头发上要怎么才能清除干净啊(别说
推荐资讯
小神童孕婴用品这个地址在什么地方,我要处理
梁山伯与祝英台为什么是七世夫妻
过年到现在还有什么节过?
哪里最好卖包子馒头且卖的人少
为什么我有1000点卷一下没了
作为课代表,早上怎么让班级里的同学都读起来
三星 sgh f278的电池还适用于哪些三星手机机
数学题(初二几何)
求一首歌曲!这首歌曲经常被拿来做背景音乐!
怀孕3个多月了,乳房出现白色的乳滋和有带红
请问有办法让绝扎过的女人再怀孕吗?如果可以
谁有水产贸易方面相关的参考文献 注明作者出
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?