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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出相关的知识,希望对你有一定的参考价值。

写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出结果,好像有点难)
没有百度到合适的答案,等大神。

#include <stdio.h>

void sort(int a[], int n)

int i,j,t;

    for(j=0;j<n-1;j++)

        for(i=0;i<n-1-j;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("请输入一组整数,以负数表示输入结束:\\n");

scanf("%d",&a[0]);

while(a[n]>=0)

scanf("%d",&a[++n]);

sort(a,n);

    for (i=0;i<n;i++)

        printf("%d ", a[i]);

    printf("\\n");

getch();

追问

我在c4droid上报错怎么回事

可能是c4的问题吧

参考技术A http://blog.163.com/asm_c/blog/static/24820311320116106320659/

参考。
参考技术B 重点在于如何结束。
必须约定结束条件。追问

随便,比如换行结束

加0结束都可以

追答#include <stdio.h>
#include <stdlib.h>
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("\\n");
 
    free(a);
    return 0;

在刚才换行结束的基础上,随便改动一下,就是这个输入非法字符结束的了。

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列

一定要完整,一定要正确,要能运行,谢谢

1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:

2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:

3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字就行排序,最后则是将结果打印出来。冒泡排序需要用到两层循环,第一层循环遍历数组中的元素,第二层则进行两两比较,如果顺序不对就要对其进行换位,直到排序完成:

4、最后执行程序观察结果,按下crtl+F5弹出程序,随意输入10个数,按下回车键执行结果,此时就可以看到排序后的结果了。以上就是c语言冒泡排序程序的演示:

参考技术A #include<stdio.h>
#include<string.h>
void maopaofa(char x[],int y)

int i;
int j;
char t;
for(i=0;i<y;i++)
for(j=0;j<y-1;j++)

if(x[j]>x[j+1])

t=x[j];
x[j]=x[j+1];
x[j+1]=t;



int main()

char a[100];
int i;
gets(a);
int l=strlen(a);
maopaofa(a,l);
for(i=0;i<l;i++)

printf("%c",a[i]);

return 0;
参考技术B #include "stdio.h"
main()

int a[10],i,j,t;
for (i=0;i<10;i++)
scanf("%d",&a[i]);

for (j=1;j<10;j++)
for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
t=a[i]; a[i]=a[i+1];a[i+1]=t;

for (i=0;i<10;i++)
printf("%d ",a[i]);

参考技术C char a[] = "6931280457", c;
int i, j;
for(i = 0; i < 10; ++i)
for(j = 9; j > i; --j)
if(a[j] < a[i])
c = a[i]; a[i] = a[j]; a[j] = c;
还不错,希望你采纳。
参考技术D #include "stdio.h"
void sort(char *d,int n)

int i,j;
char temp;
for(i=0;i<n-1;i++)

for(j=n-1;j>i;j--)

if(d[j]<d[j-1])

temp=d[j];d[j]=d[j-1];d[j-1]=temp;




int main()

char d[100];
int i;
for(i=0;i<10;i++)
scanf("%c",&d[i]);
sort(d,10);
for(i=0;i<10;i++)
printf("%c",d[i]);

以上是关于写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出的主要内容,如果未能解决你的问题,请参考以下文章

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列

用调用函数,用"起泡法"对输入的10个整数按从小到大顺序排列

写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数

写一个函数实现对输入10个字符按由小到大顺序排列.在主函数中调用该函数并输出排序后的结果

C语言:对输入的十个数进行从小到大排序

C语言 精典排序算法程序合集