C语言:定义一个长度为8的整型数组,从键盘输入数值,并定义两个子函数,分别用来求其平均值和将数组按从大到小的排序,在主函数中调用子函数并输出结果。
问题描述:
定义一个长度为8的整型数组,从键盘输入数值,并定义两个子函数,分别用来求其平均值和将数组按从大到小的排序,在主函数中调用子函数并输出结果。
答
你题目的解答代码如下:
#include <stdio.h>
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)//n个数,总共需要进行n-1次
{ //每次会将最大(升序)或最小(降序)放到最后面
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;
}
}
}
}
double getavg(int a[],int n)
{
int i, sum=0;
for(i=0;i<n;i++)
{
sum += a[i];
}
return 1.0*sum/n;
}
void main()
{
int a[8];
int i,n=8;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("平均值:%.2f\n", getavg(a,n));
sort(a,n);
printf("从大到小的排序:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
如有帮助,望采纳!谢谢!
答
#include "stdio.h"
#include<stdlib.h>
//冒泡排序
void choose(int a[],int n){
int i,j,temp;
for(i=1;i<n;i++)
{
for(j=n-1;j>=i;j--)
{
if(a[j]>a[j-1]){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}
//输出
void output(int a[],int n){
int i;
for(i=0;i<n;i++)
printf("%d\t",a[i]);
}
void avg(int a[],int n){
int i;
float sum=0;
for(i=0;i<n;i++)
sum += a[i];
printf("平均数:%0.2f\n", sum/n);
}
void main()
{
int a[8];
int i;
int index=0;
for(i=0;i<8;i++){
scanf("%d",&a[i]);
}
//冒泡排序
choose(a,8);
//平均数
avg(a,8);
//输出
output(a,8);
}