C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现 50

 我来答
White_MouseYBZ
2017-07-08 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6608万
展开全部
#include "stdio.h"
#define N 10
void inputdata(int *p,int n){//输入数据
printf("Input 10 integers...\n");
while(--n>=0)
scanf("%d",p+n);
}
void mysort(int *p,int n){//排序
int i,j,k;
printf("\n");
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(p[k]>p[j])
k=j;
if(k-i)
j=p[i],p[i]=p[k],p[k]=j;
}
}
void outdata(int *p,int n){//输出
while(n>0)
printf("%d ",p[10-n--]);
printf("\n");
}
int main(int argc,char *argv[]){
int a[N];
inputdata(a,N);//调用输入函数
mysort(a,N);//调用排序函数
outdata(a,N);//调用输出函数
return 0;
}

运行样例如下:

rhdlilj
2017-06-26 · TA获得超过160个赞
知道小有建树答主
回答量:194
采纳率:55%
帮助的人:97.1万
展开全部
#include <stdio.h>

void input(int array[], int num)
{
    int i;
    
    for (i = 0; i < num; i++) {
        scanf("%d", &array[i]);
    }
}

void output(int array[], int num)
{
    int i;

    for (i = 0; i < num; i++) {
        printf("%d \t", array[i]);
    }
    
     printf("\n");
}

void sort(int array[], int num, int order)
{
    int i, j, temp;
    
    if (order == 0) {    //升序
    for (j = 0; j < n - 1; j++) {
        for (i = 0; i < n - 1 - j; i++) {
            if(array[i] > array[i + 1]) {
                temp = array[i];
                array[i] = array[i + 1];
                array[i + 1] = temp;
            }
        }
        }
    } else {        //降序
        for (j = 0; j < n - 1; j++) {
        for (i = 0; i < n - 1 - j; i++) {
            if(array[i] < array[i + 1]) {
                temp = array[i];
                array[i] = array[i + 1];
                array[i + 1] = temp;
            }
        }
        }
    }
}


int main(void)
{
    int a[10], b;
    
    printf("请输入10整数:");
    input(a, 10);
    
    printf("输入的数组是:");
    output(a, 10);
    
    printf("\n[0] 升序排列\n");
    printf("[1] 降序排列\n");
    printf("请选择排序方向:");
    scanf("%d", &b);
    
    sort(a, 10, b);
    
    printf("排序后的数组是:");
    output(a, 10);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2015-07-01 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3471万
展开全部
#include <stdio.h>

const int MAXSIZE = 10;

void input(int a[], int n) {
int i;
printf("输入 %d 整数(空格隔开):\n",n);
for(i = 0; i < n; ++i)
scanf("%d",&a[i]);
}

void mysort(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(i != k) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}

void show(int a[], int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ",a[i]);
printf("\n");
}

int main() {
int a[MAXSIZE];
    input(a,MAXSIZE);
printf("排序前:\n");
show(a,MAXSIZE);
mysort(a,MAXSIZE);
printf("排序后:\n");
show(a,MAXSIZE);
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葡震撼闪匮
2017-06-18
知道答主
回答量:4
采纳率:0%
帮助的人:3822
展开全部
自定义函数实现的意思是 输入输出不能调用scanf和printf函数 而是自己写输入输出和排序吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式