c语言用函数排序问题

输入n个整数,按从小到大排序输出 要求输入输出均采用函数。 main 输入(input)排序(choose)输出(output)

void input(int **p, int &n)
{
	scanf_s("%d", &n);
	int *q = new int[n];
	*p = q;
	for (int i = 0; i < n; i++)
		scanf_s("%d", &q[i]);
}

void choose(int *p, int n)
{
    if(p == NULL || n== 0)
        return;
	int temp;
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			if (p[j] > p[j + 1])
			{
				temp = p[j];
				p[j] = p[j + 1];
				p[j + 1] = temp;
			}
		}
	}
}

void output(int *p, int n)
{
    if(p == NULL || n== 0)
        return;
	for (int i = 0; i < n; ++i)
		printf("%d ", p[i]);
}

int main() 
{ 
	int *p = NULL;
	int n = 0;
	input(&p, n);
	choose(p, n);
	output(p, n);
    if(p != NULL)
        delete []p;

	return 0; 
}

 

/* Note:Your choice is C IDE */
#include "stdio.h"

//输入
void input(int a[10]){
	int i;
    for(i=0;i<10;i++)
    	scanf("%d",&a[i]);
}
//冒泡排序
void choose(int a[10]){
	int i,j,temp;
    for(i=1;i<10;i++)
    {
    	for(j=9;j>=i;j--)
    	{
    		if(a[j]<a[j-1]){
    			temp=a[j];
    			a[j]=a[j-1];
    			a[j-1]=temp;
    		}
    	}	
    }	
}
//输出
void output(int a[10]){
	int i;
    for(i=0;i<10;i++)
    	printf("%d\t",a[i]);	
}
void main()
{
    
    int a[10];
    //输入
    input(a);
    //冒泡排序
    choose(a);
    //输出
    output(a);
}

 

代码如下:

如有帮助,请采纳一下,谢谢。

#include <stdio.h>


void input(int arry[],int &nsize)
{
	printf("请输入数据的个数:");
	scanf("%d",&nsize);
	for (int i = 0; i < nsize; i++)
	{
		scanf("%d",&arry[i]);
	}
}


void choose (int arr[], int len) 
{
	int temp;
	int i, j;
	for (i=0; i<len-1; i++)
	{
		for (j=0; j<len-1-i; j++) 
		{ 
			if (arr[j] > arr[j+1]) 
			{
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}

void output(int arr[],int size)
{
	for (int i = 0; i < size; i++)
	{
		if(i < size -1)
			printf("%d ",arr[i]);
		else
			printf("%d",arr[i]);
	}
}

int main()
{
	int arry[100] = {0};
	int nsize = 0;

	input(arry,nsize);
	choose(arry,nsize);
	output(arry,nsize);
	return 0;
}

 

#include "stdio.h"
int n,a[1000];
void input(){
    int i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
}
void choose(){
    int i,j,t;
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            if(a[i]<a[j]){
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
}
void output(){
    int i;
    for(i=0;i<n;i++){
        printf("%d ",a[i]);
    }
}
int main(){

    input();
    choose();
    output();

    return 0;
}

#include "stdio.h"
//输入函数
void input(int a[10]){
	int i;
    printf("请输入10个整数:\n");
    for(i=0;i<10;i++)
    	scanf("%d",&a[i]);
}
//排序函数
void choose(int a[10]){
	int i,j,temp;
    for(i=1;i<10;i++)
    {
    	for(j=9;j>=i;j--)
    	{
    		if(a[j]<a[j-1]){
    			temp=a[j];
    			a[j]=a[j-1];
    			a[j-1]=temp;
    		}
    	}	
    }	
}
//输出函数
void output(int a[10]){
	int i;
    printf("排序后的结果为:\n");
    for(i=0;i<10;i++)
    	printf("%d\t",a[i]);	
}
//主函数
void main()
{
    int a[10];
    //输入
    input(a);
    //排序
    choose(a);
    //输出
    output(a);
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632