编写函数实现对数组中10个整数由小到大排序,要求编写三个分别实现整数的输入,排序,输出,主函只须调

编写函数实现对数组中10个整数由小到大排序,要求编写三个分别实现整数的输入,排序,输出,主函只须调提示:以数组名作为函数参数,编写三个函数。
input(int a[],int n)
sort(int a[],int n)
print(int a[],int n)

#include <stdio.h>
#include <stdlib.h>

/**
 * 编写函数实现对数组中10个整数由小到大排序,要求编写三个分别实现整数的
 * 输入,排序,输出,主函只须调提示:以数组名作为函数参数,编写三个函数。
 * input(int a[],int n)
 * sort(int a[],int n)
 * print(int a[],int n)
 */

 /* 输入函数 */
 int input(int a[],int n)
 {
    int i = 0;

    printf("请以此输入数组元素:\n");
    for(i=0; i<n; i++)
    {
        scanf("%d", &a[i]);
    }

    return 0;
 }

 /* 排序函数 */
 int sort(int a[],int n)
 {
     int i = 0, j = 0, tem = 0;

     printf("正在对数组进行由小到大排序:\n");
     for(i=0; i<n; i++)
     {
         for(j=i+1; j<n; j++)
         {
             if(a[j] < a[i])
             {
                 tem = a[i];
                 a[i] = a[j];
                 a[j] = tem;
             }
         }
     }
     printf("排序完成!\n");
     return 0;
 }

 /* 输出函数 */
 int print(int a[],int n)
 {
     int i = 0;
     printf("输出数组: \n");
     for(i=0; i<n; i++)
     {
         printf("%d ",a[i]);
     }
     printf("\n");

     return 0;
 }

int main()
{
    int *a = NULL;
    int n = 0;

    /* 输入 */
    printf("请输入数组的大小:\n");
    scanf("%d", &n);
    a = malloc(n*sizeof(n));
    input(a, n);

    /* 排序 */
    sort(a, n);

    /* 输出 */
    print(a, n);

    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-11
#include<stdio.h>
int a[10];
void input()
{
int i;
printf("输入10个整数:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
}
void sort()
{
int i,q,k;
for (q = 0; q < 10; q++)
{
for (i = 0; i < 9; i++)
{
if (a[i] > a[i + 1])
{
k = a[i + 1];
a[i + 1] = a[i];
a[i] = k;
}
}
}
}
void print()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
}
void main()
{
int a[10];
input();               //输入10个整数
sort();                //排序
print();
while (1);
}

第2个回答  2017-07-24
#include<stdio.h>
#include<string.h>
void input(int a[],int n){
    int i;
    for(i = 0;i < n;i ++)
        scanf("%d",&a[i]);
}
void sort(int a[],int n){
    int i,j,d;
    for(i = 0;i < n ;i ++){
        for(j = i;j < n;j ++){
            if(a[i] > a[j]){
                d = a[i];
                a[i] = a[j];
                a[j] = d;
            }
        }
    }
}
void print(int a[],int n){
    int i;
    for(i = 0;i < n;i ++){
        printf("%d ",a[i]);
    }
    printf("\n");
}
int main()
{
    int a[10],n;
    n = 10;
    input(a,10);
    sort(a,10);
    print(a,10);
    return 0;
}

第3个回答  2017-04-23
...
第4个回答  2019-12-05
很遗憾,这个问题我一点都不明白,无从下手,根本就打不了
相似回答