定义一个长度为100的int型数组,输入n(n=1&&n=10 0),输入n个值到数组中,用选择排序法将它们从小到大排序后输出。还有其他方法吗?

#include <stdio.h>
int main()
{
int a[100] = {23, 45, 60, 67, 88}, len = 5;
int value;
int i, type, j;
while (scanf ("%d", &value)){
if (value < 0)break;
for (i = 0; i < len; ++i){
if (value == a[i]){
type = 1;
break;
}
else if (a[i] > value){
type = 2;
break;
}
}
if (i >= len){
a[len++] = value;
}
else {
if (type == 1){
for (j = i; j < len-1; ++j){
a[j] = a[j+1];
}
len--;
}
else if (type == 2){
for (j = len; j > i; --j){
a[j] = a[j-1];
}
len++;
a[i] = value;
}
}
for (i = 0; i < len; ++i){
printf ("%5d", a[i]);
}
printf ("\n");
if (len >= 100){
printf ("More than 100!\n");
break;
}
}

}

排序的方法有很多种:冒泡啊,选择,比较排序等
写了一种冒泡供你参考

#include <QCoreApplication>
#include <string>
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;


int main()
{
    int a[100] = {23, 45, 60, 67, 88}, len = 5;
    for(int i=0;i<len;++i)
    {
        for(int j=i+1;j<len;++j)
        {
            if(a[i]>a[j])
            {
                int temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    for(int i=0;i<len;++i)
    {
        cout<<" "<<a[i];
    }
    cout<<endl;

    return 0;
}

img