#include <stdio.h>
#include <Windows.h>
/练习:定义一个包含15个元素的数组,编写函数fun完成以下功能:
1.调用随机函数给数组元素赋值0到49
2.输出数组元素里面的值
3.按顺序每三个元素求和值,并且传回主函数
4.输出所有的和值
5.按升序排列并且输出所有元素
6按升序排列并且输出所有元素/
#define N 15
#define M 3
#include <stdlib.h>
void getrand(int *a,int n)
{
int i;
for(i=0;i<n;i++)
a[i]=rand()%50;
}
void outarray(int *pa,int m)
{
int i;
for(i=0;i<m;i++)
printf("%d “,*pa++);
printf(”\n");
}
void getave(int a,intb,int k)
{
int i,sum=0,j=0;
for(i=0;i<k;i++)
{
sum+=a[i];
if((i+1)%3==0)
{
b[j]=sum;
sum=0;
j++;
}
}
}
void arraysort1(int *a,int n)
{
int i,j,p,t;
for(i=0;i<n-1;i++)//冒泡排升序
{
p=i;
for(j=i+1;j<n;j++)
if(a[p]>a[j])
p=j;
if(p!=i)//上一步j给p进行了赋值,此时要交换数组里面包含的数
{
t=a[p];
a[p]=a[i];
a[i]=t;
}
}
}
void arraysort2(int *a,int n)//冒泡排降序
{
int i,j,p,t;
for(i=0;i<n-1;i++)
{
p=i;
for(j=i+1;j<n;j++)
if(a[p]<a[j])
p=j;
if(p!=i)//上一步j给p进行了赋值,此时要交换数组里面包含的数
{
t=a[p];
a[p]=a[i];
a[i]=t;
}
}
}
void main()
{
int a[N],b[N/M];
getrand(a,N);
outarray(a,N);
getave(a,b,N);
outarray(b,N/M);
arraysort1(a,N);
outarray(a,N);
arraysort2(a,N);
outarray(a,N);
system(“pause”);
}