第9次作业-函数求输入的任意两个数的平均值,并输出三个数中的最小值。

Posted 2596148460LW

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第9次作业-函数求输入的任意两个数的平均值,并输出三个数中的最小值。相关的知识,希望对你有一定的参考价值。

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/sdscfz/SF3/ |
| ---------- | -------------------------------------------------------- |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/sdscfz/SF3/homework/12969|
| 这个作业的目标 | 第9次作业-函数求输入的任意两个数的平均值,并输出三个数中的最小值。 |

```<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第九次作业</title>
</head>
<body>
<script src="./ch04.js"></script>
</body>
</html>
```

 ```

var a =prompt(\'请输入第一个数\');
var b =prompt(\'请输入第二个数\');
function favg(a,b)
    var avg = (a+b)/2;
    return avg
   
    var max = favg(a,b)
for(var i = 0;i<=100;i++)
   
document.write(avg);

    function getMax(a,b,c)
        if(a>b>c)
            return c;
       
        if(a>>c>b)
            return b;
       
        if(a>b>c)
            return c;
       
        if(a>b>c)
            return c;
       


           
       
   
    var min = getMax(a,b,c)
for(var i = 0;i<=100;i++)
   
document.write(min);
 


```

第9次作业

一:实验内容

1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)

#include <stdio.h>
#define N 100
void readscore(int score[],int n);//输入
double average(int score[],int n);//平均值
int findmaxindex(int score[],int n,int index[]);//最大值下标
int findminindex(int score[],int n,int index[]);//最小值下标
int findstudent(int score[],int n,int m);//查找函数
void order(int score[],int n);//排序
void printfscore(int score[],int n);//输出 
int main()
{
    int score[N]={0},n,m,i,sum,count1,count2,index[N]={0};
    double ave;
    printf("input the number:\\n");
    scanf("%d",&n);
    readscore(score,n);
    ave=average(score,n);
    printf("平均分为%.2f\\n",ave);
    count1=findmaxindex(score,n,index);
    for(i=0;i<count1;i++)
    {
        printf("最高分=%d,是第%d个同学",score[index[i]],index[i]+1);
    }
    count2=findminindex(score,n,index);
    for(i=0;i<count2;i++)
    {
        printf("最低分=%d,是第%d个同学",score[index[i]],index[i]+1);
        
    }
    printf("输入你想查询的学生的成绩\\n");
    scanf("%d",&m);
    findstudent(score,n,m);
    printf("排序后的数为:\\n");
    order(score,n);
    printfscore(score,n);
    return 0;
}
void readscore(int score[],int n)//输入函数 
{
    int i;
    printf("请输入考试成绩:\\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&score[i]);
    }
}
double average(int score[],int n)//求平均值 
{
    int i,sum=0;
    for(i=0;i<n;i++)
    {
        sum=sum+score[i];
    }
    return (double)sum/n;
}
int findmaxindex(int score[],int n,int index[])//最大值下标 
{
    int i,max,count1;
    max=score[0];
    count1=0;
    for(i=0;i<n;i++)
    {
        if(score[i]==max)
        {
            index[count1++]=i;
        }
        else if(score[i]>max)
        {
            max=score[i];
            count1=0;
            index[count1++]=i;
        }
    }
    return count1;
}
int findminindex(int score[],int n,int index[])//最小值下标 
{
    int i,min,count2;
    min=score[0];
    count2=0;
    for(i=0;i<n;i++)
    {
        if(score[i]==min)
        {
            index[count2++]=i;
        }
        else if(score[i]<min)
        {
            min=score[i];
            count2=0;
            index[count2++]=i;
        }
    }
    return count2;
}
int findstudent(int score[],int n,int m)//查找 
{
    int i,y=0;
    for(i=0;i<n;i++)
    {
        if(score[i]==m)
        {
            y=i+1;
            printf("您所查询学生的是第%d名输入的成绩。\\n",y);
        }
    }
    if(y==0)
    {
        printf("您所查询学生的考试成绩不存在。\\n");
    }
}
 void order(int score[],int n)//排序 
{
    int i,j,temp;
    for(i=0;i<n-1;i++) 
    {
        for(j=0;j<n-1-i;j++) 
        {
            if (score[j]>score[j+1])
            {
                temp=score[j];
                  score[j]=score[j+1];
                  score[j+1]=temp;
            }
          }
    }
}

void printfscore(int score[],int n)//输出 
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%5d",score[i]);
    }
    
}

 

2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。

#include <stdio.h>
#define N 100
int main()
{
    int a[100]={0},i,n=0;
    for(i=0;i<100;i++)
    {
        a[i]=i+1;
        if(a[i]%3==0||a[i]%7==0)
        {
            a[i]=0;
            continue;
        }
        else
        {
            printf("%5d",a[i]);
            n++;
            if(n%10==0)
            {
                printf("\\n");
            }
        }
    }
    printf("一共剩下%d个数字",n);
    return 0;
}

二:实验总结

1:不要忘记函数的输出

2:注意函数的赋初值问题

3:注意先声明变量在使用变量

4:注意int 和void的区别

 三:程序分析

 程序1     

#include <stdio.h>
void swap(int x[]);
int main()
{  
     int a[2]={1,2};
    swap(a);
    printf("a[0]=%d\\na[1]=%d\\n",a[0],a[1]);
    return 0;
}
void swap(int x[])
{   
    int z;
    z=x[0];     
    x[0]=x[1];     
    x[1]=z;
}

  程序2  

#include <stdio.h>
void swap(int x,int y);
int main()
{
    int a[2]={1,2};
    swap(a[0],a[1]);
    printf("a[0]=%d\\na[1]=%d\\n",a[0],a[1]);
    return 0;
}
void swap(int x,int y)
{  
     int z;
     z=x;
     x=y; 
     y=z;
}

程序一运行结果

程序二运行结果

分析:程序一交换的是数组,程序二交换的是元素导致两程序运行结果不同,从程序一看出输入但是数组,后面的数组x[1]和x[0]可以直接进行交换,而程序二输入的依然是数组,实参的值给了形参,由于实参和形参占用不同的内存单元,形参的改变不会影响实参。

以上是关于第9次作业-函数求输入的任意两个数的平均值,并输出三个数中的最小值。的主要内容,如果未能解决你的问题,请参考以下文章

第9次作业-函数求输入的任意两个数的最大值

第9次作业-函数求输入的任意两个数的最大值

第九次作业

第9次作业

C语言求平均值

Python分两行输入两个正整数输出两个数的和差怎么写?