永发信息网

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

答案:4  悬赏:0  手机版
解决时间 2021-03-09 10:25
C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现
最佳答案
#include "stdio.h"
#define N 10
void inputdata(int *p,int n){//输入数据
printf("Input 10 integers...
");
while(--n>=0)
scanf("%d",p+n);
}
void mysort(int *p,int n){//排序
int i,j,k;
printf("
");
for(i=0;i for(k=i,j=k+1;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("
");
}
int main(int argc,char *argv[]){
int a[N];
inputdata(a,N);//调用输入函数
mysort(a,N);//调用排序函数
outdata(a,N);//调用输出函数
return 0;
}运行样例如下:

全部回答
自定义函数实现的意思是 输入输出不能调用scanf和printf函数 而是自己写输入输出和排序吗
#include 
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  ", array[i]);
    }
    
     printf(" ");
}
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(" [0] 升序排列 ");
    printf("[1] 降序排列 ");
    printf("请选择排序方向:");
    scanf("%d", &b);
    
    sort(a, 10, b);
    
    printf("排序后的数组是:");
    output(a, 10);
}
#include 
const int MAXSIZE = 10;
void input(int a[], int n) {
int i;
printf("输入 %d 整数(空格隔开): ",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(" ");
}
int main() {
int a[MAXSIZE];
    input(a,MAXSIZE);
printf("排序前: ");
show(a,MAXSIZE);
mysort(a,MAXSIZE);
printf("排序后: ");
show(a,MAXSIZE);
    return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
send的过去式和过去分词是什么
明挖基础中属于无护壁基坑的开挖方式的是()。
欠货款没钱还法院怎样判决
一个朋友说你在社会上混不开是什么意思???
李氏典藏是西凤系列湖北省运营商。谁知道哪一
天壹佰货这个地址在什么地方,我要处理点事
“棉花”是什么 但烦闷——忧愁 都在此中融化
戴尔poweredge 1600sc 开机提示Alert!Front
【一盏】中医所说的一盏水是多少?中医所说的
有多少男人下班了不想回家
如何取得客户机的机器码?软件注册码,机器码
翅膀符号怎么打
哈利·波特里哈利、罗恩、赫敏、金妮的真名
住房健在水库上风水怎么样?
夭逸ad一3推童笛3号音箱如何
推荐资讯
产后骨质疏松怎么办
从情感范畴来看,爱国心是一种A.责任感B.情操
家里wifi信号很好,但是上不了网,重启无限路由
如何解除小米自带滑屏解锁
windows7系统声音美化王怎么用
下列动物中属于我国珍稀保护的两栖动物是BA.
火星,水星,金星,土星,木星是中国古代人命
《宁为女人》的主演是谁?
我在g6高速一真跑160迈怎么没有超速
天然a货极品荧光绿玉髓是什么
写一篇圆梦巨人的精彩片段400字
应届毕业生认定教师资格证的时候,大学成绩单
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?