求c语言大佬帮助!帮我写个小程序,谢谢

1、数组排序:编写以下三函数(参数a为数组,p为指向数组第一个元素的指针指针,n为数组的长度)voidInit(inta[],intn);随机生成元素取值范围在0到99的... 1、 数组排序:
编写以下三函数(参数a为数组,p为指向数组第一个元素的指针指针,n为数组的长度)
void Init(int a[],int n); 随机生成元素取值范围在0到99的数组
void Short(int *p,int n); 用选择法对数组中的元素从小到大排序
void Print(int *p,int n); 在屏幕上输出数组各元素的值(逗号分隔)
在主函数中调用Init函数随机生成两个数组a和b的元素, 调用Short函数对数组元素排序,调用Print函数输出数组排序前后各元素的值;将数组a和b合并到c后再调用Short函数对其排序,并输出排序前后数组c中各元素的值。
提示:
产生随机数需用到在stdlib.h中声明rand()函数、srand()函数 和在time.h中声明的time( )函数。详细用法说明参见实验5。
展开
 我来答
匿名用户
2019-05-18
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Init(int a[],int n); //随机生成元素取值范围在0到99的数组
void Short(int *p,int n); //用选择法对数组中的元素从小到大排序
void Print(int *p,int n); //在屏幕上输出数组各元素的值(逗号分隔)
#define N (10)

int main()
{
    int a[N],b[N],c[N*2],i;
    srand(time(NULL));
    
    Init(a,N);
    Print(a,N);
    Short(a,N);
    Print(a,N);
    
    Init(b,N);
    Print(b,N);
    Short(b,N);
    Print(b,N);
    
    for(i=0;i<N;++i)
    {
        c[i]=a[i];
    }
    for(i=0;i<N;++i)
    {
        c[i+N]=b[i];
    }
    Print(c,2*N);
    Short(c,2*N);
    Print(c,2*N);
    
    return 0;
}

void Init(int a[],int n)
{
    int i;
    for(i=0;i<n;++i)
    {
        *a++=rand()%100;
    }
}

void Short(int *p,int n)
{
    int i,j,t;
    for(i=0;i<n-1;++i)
    {
        for(j=0;j<n-i-1;++j)
        {
            if(p[j]>p[j+1])
            {
                t=p[j];
                p[j]=p[j+1];
                p[j+1]=t;
            }
        }
    }
}

void Print(int *p,int n)
{
    int i;
    for(i=0;i<n;++i)
    {
        printf("%d%c",*p++,i<n-1?',':'\n');
    }
}
duanggi
2019-05-18 · TA获得超过196个赞
知道小有建树答主
回答量:240
采纳率:87%
帮助的人:141万
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 10
#define M 10
void Init(int a[], int n)
{
for (int i = 0; i < n; i++)
a[i] = rand() % 100;
}
void Print(int *p, int n)
{
for (int i = 0; i < n - 1; i++)
printf("%d,", p[i]);
printf("%d", p[n - 1]);
}
void Short(int *p, int n)
{
int index = 0;
int min = 0;
for (int i = 0; i < n; i++)
{
min = p[i];
index = i;
for (int j = i + 1; j < n; j++)
{
if (p[j] < min)
{
min = p[j];
index = j;
}
}
if (index != i) // 交换元素
{
min = p[i];
p[i] = p[index];
p[index] = min;
}
}
}
void main()
{
srand((unsigned)time(NULL));
int a[N], b[M], c[N+M];
Init(a, 10);
Init(b, 10);
printf("数组a:");
Print(a, 10);
printf("\n");
printf("数组b:");
Print(b, 10);

printf("\n\n排序后\n");
Short(a, 10);
Short(b, 10);
printf("数组a:");
Print(a, 10);
printf("\n");
printf("数组b:");
Print(b, 10);
printf("\n");

for (int i = 0; i < N; i++) c[i] = a[i];
for (int i = 0; i < M; i++) c[i + N] = b[i];

printf("数组C:");
Print(c, N + M);
printf("\n");

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式