0
已解决
为什么90分:
#include<iostream>
using namespace std;
int main()
{
long a[52],m,n;
cin>>m;
for(int i=1;i<=m;i++)
cin>>a[i];
for(int i=1;i<=m;i++)
{
for(int j=1;j<=m;j++)
{
if(a[j]>a[i])
{
n=a[i];
a[i]=a[j];
a[j]=n;
}
}
}
for(int i=1;i<=m;i++)
cout<<a[i]<<" ";
return 0;
}
0
已采纳
哈罗
谭凯钊,你好,你这一题啊啊啊啊啊,用的是🔟选排,对吧❓
选排中啊,j要从i+1开始哒,你,却从1开始,呃呃呃呃……
蒋智航在2018-08-29 15:25:58追加了内容
如果你会用系统函数——sort()
你就加个
头文件!!!
输入输出你就自己写,若不会我给你输入代码
int m,a[100000];
cin>>m;
for (int i=0;i<m;i++)
{
cin>>a[i];
}
在
循
环
外
加
sort(a,a+m,less<int>());
循环输出;
那么你就
完
美
AC啦!!!
蒋智航在2018-08-29 15:32:35追加了内容
蒋智航在2018-08-29 15:37:51追加了内容

0
0
原因出在这:
for(int i=1;i<=m;i++)
{
for(int j=1;j<=m;j++)//错啦!!!
{
if(a[j]>a[i])
{
n=a[i];
a[i]=a[j];
a[j]=n;
}
}
}
这一行为什么错了,请看下一行:
因为选择排序的j应该是每次比i大1,所以应该是for(int j=i+1;j<=m;j++)
其他如果还有什么问题评论里说
0
0
