永发信息网

写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出

答案:3  悬赏:70  手机版
解决时间 2021-03-15 15:30
  • 提问者网友:我是女神我骄傲
  • 2021-03-15 08:38
写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-03-15 09:44
#include
void sort(int a[], int n)
{int i,j,t;
    for(j=0;j        for(i=0;i            if(a[i] > a[i + 1])
            {t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
 
int main()
{ int a[1000];
    int i,n=0;

printf("请输入一组整数,以负数表示输入结束:
"); scanf("%d",&a[0]);
while(a[n]>=0)
scanf("%d",&a[++n]);
sort(a,n);
    for (i=0;i        printf("%d ", a[i]);

    printf("
");getch();
}

追问我在c4droid上报错怎么回事
可能是c4的问题吧

全部回答
  • 1楼网友:走死在岁月里
  • 2021-03-15 11:00
重点在于如何结束。
必须约定结束条件。追问随便,比如换行结束加0结束都可以追答#include 
#include 
void int_sort(int *a, int l)
{
    int i, j;
    for(i = 0; i < l-1; i ++)
        for(j = i+1; j < l; j ++)
            if(a[i]>a[j])
            {
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
}
  
int main()
{
    int *a;
    int t = 10;
    int i = 0;
    a = (int*)malloc(sizeof(int)*t);
 
    while(1)
    {
        if(scanf("%d",a+i)!=1)break;
        i++;
        if(t == i)
        {
            t+=10;
            a = (int *)realloc(a, sizeof(int)*t);
        }
    }
    t = i;
    int_sort(a,t);
    for(i = 0; i < t; i ++)
        printf("%d,",a[i]);
    printf(" ");
 
    free(a);
    return 0;
}
在刚才换行结束的基础上,随便改动一下,就是这个输入非法字符结束的了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯