问题标题: 酷町堂:4003

1
1
已解决
李明阳
李明阳
初级光能
初级光能
#include<iostream>
using namespace std;
int a[10010];
int main() {
    int n,j,key;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=2;i<=n;i++)
    {
        key=a[i];
        j=i-1;
        while(j>=1&&key<a[j]){
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=key;
    }
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

 


1
已采纳
徐紫尘
徐紫尘
高级光能
高级光能

我们先要用while来输入a[i]

把n定义为1,一次循环一次++

随后是插入核心,别忘定义k,j

然后cout<<a[i]<<' ';

1
1
李素妍
李素妍
新手天翼
新手天翼

 for(int i=1;i<=n;i++){
        cin>>a[i];
    }

改成

while(1){
        i++;
        cin>>a[i];
        if(a[i]==0){
            break;
        }
    }

 

李素妍在2020-02-23 14:17:23追加了内容

还有你为是么问作业?

可以问卢老师

李素妍在2020-02-23 14:18:10追加了内容

我也干过

1
朱子尘
朱子尘
初级光能
初级光能

难道你没有仔细看题

你为什么用for呢?

用while循环

while(1)
    {
        cin>>a[i];
        if(a[i]==0)
            break;
        i++;
        cnt++;
    }

我的是用个计数器,相当与你的n

0
0
0
我要回答