第九次作业

一。实验内容  

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

#include <stdio.h>
#define N 100
void scan(int score[],int n);     //输入函数 
int average(int score[],int n);//平均函数 
int maxscore(int score[],int n);//最大值 
int maxindex(int score[],int n);//最大值下标 
int minscore(int score[],int n);//最小值 
int minindex(int score[],int n);//最小值下标 
int search(int num[],int n,int x);//查询 
void bubblesort(int score[],int n);//升序
void printscore(int score[],int n); //输出函数 
int main()
{
    int score[N],n,max,max1,min,min1,m,x;
    double ave;
    printf("请输入成绩个数\n");
    scanf("%d",&n);
    scan(score,n);
    ave=average(score,n);
    printf("平均数是%.2f\n",ave);
    max=maxscore(score,n);
    printf("最大值是%d\n",max); 
    max1=maxindex(score,n)+1;
    printf("最大值下标为%d\n",max1);
    min=minscore(score,n);
    printf("最小值是%d\n",min); 
    min1=minindex(score,n)+1;
    printf("最小值下标为%d\n",min1);
    printf("请输入一个成绩\n");
    scanf("%d",&x);
    m=search(score,n,x)+1;
    printf("该学生的下标为%d\n",m);
    bubblesort(score,n);
    printscore(score,n);     
    return 0;
}
void scan(int score[],int n)     //输入函数 
{
    int i;
    printf("请输入成绩\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&score[i]);
     } 
} 
int average(int score[],int n)//平均值 
{
    int sum,i;
    sum=0;
    for(i=0;i<n;i++)
    {
        sum=sum+score[i];
    }
    return(double)sum/n;
}
int maxscore(int score[],int n)//最大值 
{
    int max,i;
    max=score[0];
    for(i=0;i<n;i++)
    {
        if(max<score[i])
        {
            max=score[i];
        }
    }
    return max;
}
int maxindex(int score[],int n)//最大值下标
{
    int i,maxdex=0;
    for(i=1;i<n;i++)
    {
        if(score[i]>score[maxdex])
        {
            maxdex=i;
        }
     } 
     return maxdex;
} 
int minscore(int score[],int n)//最小值 
{
    int min,i;
    min=score[0];
    for(i=0;i<n;i++)
    {
        if(min>score[i])
        {
            min=score[i];
        }
    }
    return min;
}
int minindex(int score[],int n)//最小值下标
{
    int i,mindex=0;
    for(i=1;i<n;i++)
    {
        if(score[i]<score[mindex])
        {
            mindex=i;
        }
     } 
     return mindex;
} 
int search(int num[],int n,int x)//查询
{
    int i;
    for(i=0;i<n;n++)
    {
        if(num[i]==x)
        {
            return i;
        }
     } 
     return -1;
} 
void bubblesort(int score[],int n)//升序
{
    int  i,j,t,flag;
    for(i=0;i<n;i++)
    {
        flag=0;
        for(j=0;j<n-1;j++)
        {
          
         if(score[j]>score[j+1])
         {
            t=score[j];
            score[j]=score[j+1];
            score[j+1]=t;
            flag=1;
         }
        }
    if(flag==0)
     {
        break;
     } 
    }
} 
void printscore(int score[],int n)//输出函数
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%5d",score[i]);
     } 
     printf("\n");
}

 

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

#include <stdio.h>
#define N 100
int main()
{
    int num[N],i,x=0,n=0;
    for(i=0;i<N;i++)
    {
        x++;
        num[i]=x;
        if(num[i]%3==0||num[i]%7==0)
        {
            num[i]=0;
        }
    }
    for(i=0;i<N;i++)
    {
        if(num[i]!=0)
        {
            printf("%5d",num[i]);
            n++;
        }
    }
    printf("\n");
    printf("一共有%d个数\n",n);
    return 0;
}

 

 

二.实验总结

1.第一题应该写一个主函数 然后对应写子函数,最好加注释看着清晰,容易出错

2.注意平均数得强行转换为double

3.double类型输入的时候必须用%lf,输出可以用%lf或%f,不能用%d

 

三.实验分析

程序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;
}

分析:程序一 值传递,将实参的变量值传递给形参

         程序二 地址传递,将实参的地址传递给形参

posted @ 2016-12-04 21:05  <柚子  阅读(242)  评论(0编辑  收藏  举报