求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。 展开
编写以下三函数(参数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');
}
}
展开全部
#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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询