c++小白问题…………帮我看一下这个程序……是从大到小排列数字的程序

#include<iostream>#include<iomanip>usingnamespacestd;intmain(){inti;inta[6];for(i=0;i... #include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i;
int a[6];
for(i=0;i<5;i++)
cin>>a[i];
int j,k;
j=i+1;
for(i=0;i<5;i++)
{if (a[i]<a[j])
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<5;i++)
cout<<a[i]<<endl;
}
是5个数排序,不是说a【】里面的数大于等于5就可以的吗?
展开
 我来答
沧海雄风2009
2011-08-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2868万
展开全部
///////////////有问题请追问 记得采纳哦/////////////////////
5 3 1 2 6
6
5
3
2
1
Press any key to continue

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i;
int a[5];
for(i=0;i<5;i++)
cin>>a[i];
int j,k;
for(i=0;i<5-1;i++)
{
for (j=0;j<5-i-1;j++)
{
if (a[j]<a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
}
for(i=0;i<5;i++)
cout<<a[i]<<endl;
}
圣诞鲨鱼
2011-08-26 · TA获得超过480个赞
知道小有建树答主
回答量:525
采纳率:0%
帮助的人:482万
展开全部
j+i+1;这句应该写在for循环里,而且if应该把下面三句括起来
for(i=0;i<5;i++)
{
j=i+1;
if (a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eric_zengyan
2011-08-26 · TA获得超过381个赞
知道答主
回答量:61
采纳率:100%
帮助的人:68万
展开全部
你这个程序有点问题,在比较替换那里。
应该是这样:
int main()
{
int i;
int a[6];
for(i=0;i<5;i++)
cin>>a[i]; // 给数组a录入5个数据。
int k; //设置一个临时变量
for(i=0;i<5;i++)
{if (a[i]<a[j])
k=a[i];
a[i+1]=a[i];
a[i]=k; //从第一个与后面的比较,如果后面的大 则交换
}
for(i=0;i<5;i++)
cout<<a[i]<<endl; //输入排序好的数组
}
还有哪一句不懂滴
追问
总是出现这句 12.obj : error LNK2005: _main already defined in bg.obj
追答
我这边不能调试,应该是你环境问题。
我没看懂你为啥要加这个 #include
你把这个删除掉 再新建一个工程 试试看

难度大了 我上面的交换那里写错了。。。悲剧
应该是这样
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
{if (a[i]<a[j])
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆莲书较静撕
2011-08-26 · 超过11用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:18.6万
展开全部
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
{if (a[i]<a[j])
k=a[i];
a[i]=a[j];
a[j]=k;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小程序员的休息栈
2011-08-26
知道答主
回答量:3
采纳率:0%
帮助的人:3618
展开全部
#include <iostream>
using namespace std;
int main(void)
{
int i;
int a[6];
for(i=0;i<6;i++)
cin>>a[i];
int j,temp;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++){
if (a[i]<a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<6;i++)
cout<<a[i]<<"\t";
system("pause");
return 0;
}
在VS2010中编译通过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
重小楼666
2011-08-26 · TA获得超过355个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:206万
展开全部
问题不少,你是要输入五个数还是六个数,要是输入六个数,为什么循环只循环到5就结束了?
排序算法也不正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式