C语言:定义一个长度为8的整型数组,从键盘输入数值,并定义两个子函数,分别用来求其平均值和将数组按从大到小的排序,在主函数中调用子函数并输出结果。

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]);
}

img

如有帮助,望采纳!谢谢!

#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);
}