第九次作业

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

 

#include <stdio.h>
#define N 100
void readscore(int score[],int n);
void printscore(int score[],int n);
double average(int score[],int n);
int findmax(int score[],int n);
int findmin(int score[],int n);
void findmaxlndex(int score[],int n,int max);
void findminlndex(int score[],int n,int min);
void search(int score[],int n,int x);
void bubblesort(int score[],int n);
       int main()
       {
           int score[N]={0},n,max,min,x;
           double ave;
           printf("请输入学生人数(n<100):");
           scanf("%d",&n);
           readscore(score,n);
           printscore(score,n);
            ave=average(score,n);
            printf("平均分为%.2f\n",ave);
            max=findmax(score,n);
            printf("最高分为%d\n",max);
            min=findmin(score,n);
            printf("最低分为%d\n",min);
            findmaxlndex(score,n,max);
            findminlndex(score,n,min);
            printf("输入查询的成绩");
            scanf("%d",&x);
            search(score,n,x);
            bubblesort(score,n);
            printf("\n排序后为");
            printscore(score,n);
           return 0;
       }
 
void readscore(int score[],int n)
{
     
    int i;
    printf("输入成绩\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&score[i]);
    }
}
void printscore(int score[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%5d",score[i]);
    }
    printf("\n");
}
 
double average(int score[],int n)
{
    int i,sum=0;
    for(i=0;i<n;i++)
    {
        sum+=score[i];
    }
    return (double)sum/n;
}
int findmax(int score[],int n)
{
    int i,max;
    max=score[0];
    for(i=1;i<n;i++)
    {
        if(score[i]>max)
        {
            max=score[i];
        }
    }
    return max;
}
int findmin(int score[],int n)
{
    int i,min;
    min=score[0];
    for(i=1;i<n;i++)
    {
        if(score[i]<min)
        {
            min=score[i];
        }
    }
    return min;
}
void findmaxlndex(int score[],int n,int max)
{
    int i,maxlndex=0;
    
    for(i=0;i<n;i++)
    {
        if(score[i]==max)
        {
            printf("第%2d个",i+1);
        }
    }
    printf("为最高分");
    printf("\n");
}
void findminlndex(int score[],int n,int min)
{
    int i,minlndex=0;
    
    for(i=0;i<n;i++)
    {
        if(score[i]==min)
        {
            printf("第%2d个",i+1);
        }
    }
    printf("为最低分");
    printf("\n");
}
void search(int score[],int n,int x)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(score[i]==x)
        printf("是第%d个",i+1);
    }
}
void bubblesort(int score[],int n)
{
    int i,j,t,flag;
    for(i=0;i<n-1;i++)
    {
         
        for(j=0;j<n-1-i;j++)
        {
            flag=0;
            if(score[j]>score[j+1])
            {
                t=score[j];
                score[j]=score[j+1];
                score[j+1]=t;
                flag=1;
            }
             
        }
         
    }
}

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

#include<stdio.h>
#define N 100
int main()
{
    int a[100]={0},x,y=0;
    for(x=0;x<100;x++)
    {
        a[x]=x+1;
    }
    for(x=0;x<100;x++)
    {
        if(a[x]%3==0||a[x]%7==0)
        {
            a[x]=0;
            continue;
        }
        else
        {
            printf("%5d",a[x]);
            y++;
           }
       }
       printf("\n总共%d个",y);
}

实验总结

1,用continue结束

知识点总结

1,注意数组不要越界

 

 

posted @ 2016-12-04 20:56  苦狂上  阅读(113)  评论(0)    收藏  举报