写一个求三个数的平均数的函数(函数名:avg),利用该函数在主函数中找出一数组中相邻三个数(包括首尾相邻)的平均数最小的数。
#include <stdio.h>
#include <string.h>
int main()
{
int n, i;
double average;
float a[100],b[100],c[100],t;
printf("输入元素个数: \n");
scanf("%d", &n);
while (n > 100 || n <= 0)
{
printf("Error! 数字需要在1 到 100 之间。\n");
printf("再次输入: ");
scanf("%d", &n);
}
for(i = 0; i < n; i++)
{
printf("%d. 输入元素a[%d]: ",i+1,i);
scanf("%f", &b[i]);}
int j;
for (j = 0;j < n;j++)
a[j] = b[j];
for (j = 0;j < n;j++)
a[n +j] =b[j];
printf("平均数分别为:");
for(i = 0; i < n; i++)
{
float t=avg(a[i],a[(i+1)%10],a[(i+2)%10]);
c[i]=t;
}
for(i=0;i<n;i++)
{printf("%.2f \n",c[i]);}
sort(c,n);
printf("其中最小的平均数为:%.2f",c[0]);
return 0;
}
int avg(double x,double y,double z)
{
double t;
int average;
average=(x+y+z)/3;
t=average;
return(t);
}
void sort(int *a,int n){
int i,j,t;
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}