第九次上机实验

任务1:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:
(1) 录入每个学生的学号和考试成绩;
(2) 计算课程的总分和平均分;
(3) 按成绩由高到低排出名次表;
(4) 按学号由小到大排出成绩表;
(5) 按学号查询学生排名及其考试成绩;
(6) 按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比;
(7) 输出每个学生的学号、考试成绩,课程总分和平均分。

我的程序:

#include <stdio.h>  
#define N 30   
void main()  
{  
    int xue[N],cheng[N],a,i,t1,t2;  
    float ave,sum=0;  
    printf ("请输入学生人数\n");  
    scanf ("%d",&a);  
    printf("请输入学号和成绩\n");  
    for (i=0;i<a;i++)  
    {  
        scanf ("%d %d",&xue[i],&cheng[i]);  
    }  
    for (i=0;i<a;i++)  
    {  
        sum=sum+cheng[i];  
    }  
    ave=sum/a;  
    printf ("总分为:%.2f 平均成绩为:%.2f\n",sum,ave);  
  
    int c,d;  
    {  
        for (c=0;c<a;c++)  
            for(int d=0;d<a-c-1;d++)  
            {  
                if(xue[d]>xue[d+1])  
                {  
                    t2=xue[d];  
                xue[d]=xue[d+1];  
                xue[d+1]=t2;  
                t1=cheng[d];  
                cheng[d]=cheng[d+1];  
                cheng[d+1]=t1;  
                }  
            }  
    }  
            printf ("按照学号由小到大\n");  
            for (c=0;c<a;c++)  
            printf ("%d\t%d\n",xue[c],cheng[c]);  
    {     
            for (i=0;i<a;i++)  
            for(int j=0;j<a-i-1;j++)  
            {  
                if(cheng[j]<cheng[j+1])  
                {  
                    t1=cheng[j];  
                cheng[j]=cheng[j+1];  
                cheng[j+1]=t1;  
                t2=xue[j];  
                xue[j]=xue[j+1];  
                xue[j+1]=t2;  
                }  
            }  
    }  
    printf("按照成绩由高到低:\n");  
    for (i=0;i<a;i++)  
                printf ("%d\t%d\n",xue[i],cheng[i]);  
    int x;  
            printf ("请输入查询的学号\n");  
            scanf ("%d",&x);  
    for (i=0;i<a;i++)  
    {  
            if (xue[i]==x)  
            printf ("学号:%d  排名:%d  成绩%d\n",xue[i],i+1,cheng[i]);  
    }  
          
    int y=0,l=0,j=0,b=0;  
    for (i=0;i<a;i++)  
    {  
            if (cheng[i]>=90&&cheng[i]<=100)  
                y++;  
  
            if (cheng[i]>=70&&cheng[i]<=89)  
                l++;  
  
            if (cheng[i]>=60&&cheng[i]<=69)  
                j++;  
  
            if (cheng[i]>=0&&cheng[i]<=59)  
                b++;  
    }  
printf ("优秀\t良好\t及格\t不及格\t\n");  
printf ("%d\t%d\t%d\t%d\t\n",y,l,j,b);  
printf ("%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\t\n",(float)(100*y/a),(float)(100*l/a),(float)(100*j/a),(float)(100*b/a));  
printf ("学号\t成绩\t\n");  
    for (i=0;i<a;i++)  
                  
    {  
        printf("%d\t%d\n",xue[i],cheng[i]);  
    }  
                printf ("总分:%.2f\t平均分%.2f\t",sum,ave);  
}  


 

运行结果:

任务2:
从键盘输入5个整数存入一维数组中,输出最大的数,再按反序输出(要求用指针访问数组元素)

我的程序:

#include<stdio.h>   
void main()  
{  
    int a[5],t,i,j=0,*p,*q;  
    printf ("请输入5个数字\n");  
        for(i=0;i<5;i++)  
        {  
            scanf("%d",&a[i]); }  
        int m=0;      
    for(i=0;i<5;i++)  
    if (m<a[i])  
        m=a[i];  
        printf("最大数为:%d\n",m);  
q=&a[0];  
    for(i=4;i>=0;i--)  
printf("%d ",*(q+i)); }

运行结果:

 

 

 

 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值