这是题目的要求,我在做第一个函数,题目说n是数组长度,可是我不知道怎么用到那个n。我用n=sizeof(a)/sizeof(a[0])会报错。
然后我直接不管n,定义了#define N 10,然后调用两次这个函数,生成的两个数组是一样的,这是为什么
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void Sort(int *p,int n)
{
int min,i,j,t;
for(i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n;j++)
if(p[min]>p[j])
min=j;
t=p[i];p[i]=p[min];p[min]=t;
}
}
void Print(int *p,int n)
{
int j=0;
while(j<n)
{
printf("%d ",p[j]);
j++;
}
printf("\n");
}
void Init(int a[],int n)
{
int j;
srand((unsigned)time(NULL));
for( j = 0; j < n; j++)
{
a[j] = rand()%99;
}
}
int main()
{
int j=0;
int n;
printf("请输入n:");
scanf("%d",&n);
int a[n];
Init(a,n);
printf("原数组a[]:");Print(a,n);
Sort(a,n);
printf("排序后a[]:");Print(a,n);
Sleep(1000);
int b[n];
Init(b,n);
printf("原数组b[]:");Print(b,n);
Sort(b,n);
printf("排序后b[]:");Print(b,n);
int n2=n*2;
int c[n2];
while(j<n)
{
c[j]=a[j];
j++;
}
while(j<n2)
{
c[j]=b[j-n];
j++;
}
printf("原数组c[]:");Print(c,n2);
Sort(c,n2);
printf("排序后c[]:");Print(c,n2);
return 0;
}