写一函数对输入的一组整数由小到大排序,在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个数,并输出排好序的数