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