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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数相关的知识,希望对你有一定的参考价值。

用C语言编写:写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数
要求用指针来实现

void sort(int *a,int N) //选择排序

int i,j,k,t;
for (i = 0; i<N-1; i++)
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i)
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;



*****************************************

示例程序:

//---------------------------------------------------------------------------

#include <stdio.h>
void sort(int *a,int N)

int i,j,k,t;
for (i = 0; i<N-1; i++)
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i)
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;




int main(int argc, char* argv[])
int a[10],i;

for (i = 0; i < 10; i++) //对数组进行填充
a[i]=10-i;

for (i = 0; i < 10; i++) //输出排序之前的情况
printf("%d ",a[i]);

putchar('\n');//换行
sort(a,10);//调用sort()函数进行排序
for (i = 0; i < 10; i++) //输出排序之后的情况
printf("%d ",a[i]);

putchar('\n');

return 0;

//---------------------------------------------------------------------------
参考技术A 解:源程序如下:
#define n 10
int sort(int a[])

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

t=a[j];
a[j]=a[i];
a[i]=t;


main()

int a[n],i;
for (i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a);
printf("the sort numberes is:\n");
for (i=0;i<n;i++)
printf("%3d",a[i]);
参考技术B #include<stdio.h>
void exchange(int a[])

int i,j,temp;
for(j=9;j>=0;j--)
for(i=0;i<j;i++)
if(a[i]>a[i+1])

temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;


main()

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

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

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

#include<stdio.h>

void sort(char c[],int n)

 int i,j; char t;

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

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

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

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

void main()

 int i; char c[10];

 printf("Please input 10 chars:\\n");

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

   scanf("%c",&c[i]);

 sort(c,10);

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

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

 printf("\\n");



参考技术A #include<stdio.h>
#define N 10
void fun(char *s,int n)  int i,j; char c;
  for ( i=0;i<n-1;i++ )
    for ( j=i+1;j<n;j++ )
      if ( s[i]>s[j] ) c=s[i];s[i]=s[j];s[j]=c;

void main()  int i; str[256];
  gets(str); fun(str,N); for ( i=0;i<N;i++ ) printf("%c ",str[i]); printf("\\n");

参考技术B public class QuickSort
public static void sort(int a[], int low, int hight)
int i, j, index;
if (low > hight)
return;

i = low;
j = hight;
index = a[i]; // 用子表的第一个记录做基准
while (i < j) // 从表的两端交替向中间扫描
while (i < j && a[j] >= index)
j--;
if (i < j)
a[i++] = a[j];// 用比基准小的记录替换低位记录
while (i < j && a[i] < index)
i++;
if (i < j) // 用比基准大的记录替换高位记录
a[j--] = a[i];

a[i] = index;// 将基准数值替换回 a[i]
sort(a, low, i - 1); // 对低子表进行递归排序
sort(a, i + 1, hight); // 对高子表进行递归排序



public static void quickSort(int a[])
sort(a, 0, a.length - 1);


public static void main(String[] args)

int a[] = 49, 38, 65, 97, 76, 13, 27, 49 ;
quickSort(a);
System.out.println(Arrays.toString(a));


//数组里面传多少个数都可以都可以帮你把数排序

以上是关于写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数的主要内容,如果未能解决你的问题,请参考以下文章

输入三个整数,比较三个数大小并按从小到大的顺序排列。python代码怎么写?高手请指导,谢谢!

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

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

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

键盘任意输入三个整数,要求按照从小到大的熟悉排列python

写一个函数,用起泡法对输人的10个字符按由小到大顺序排列