任务1:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:
(1) 录入每个学生的学号和考试成绩;
(2) 计算课程的总分和平均分;
(3) 按成绩由高到低排出名次表;
(4) 按学号由小到大排出成绩表;
(5) 按学号查询学生排名及其考试成绩;
运行后的图片:
(1) 录入每个学生的学号和考试成绩;
(2) 计算课程的总分和平均分;
(3) 按成绩由高到低排出名次表;
(4) 按学号由小到大排出成绩表;
(5) 按学号查询学生排名及其考试成绩;
(6)按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比;
我的程序:
#include<stdio.h>
#define H 30
int main()
{ void toofuck(int *x,int *y,int *z,int *w);
int *l,*i,*p,*o;
int god[H];
int FUCK[H];
int a=0,b=0,c=0,e,f,g=0,n,h=0,j,d=0,s=0;
printf("需要输入多少人的成绩\n");
scanf("%d",&n);
printf("输入学生的学号及成绩\n");
while(a<n)
{scanf("%d,%d",&god[a],&FUCK[a]);
b=FUCK[a]+b;
a++;}
c=b/n;
printf("平均分为%d,总分为%d",c,b);
while(d<n)
{for(f=0;f<n;f++)
{l=&FUCK[f];i=&FUCK[f+1];p=&god[f];o=&god[f+1];
toofuck(l,i,p,o);}d++;}
printf("成绩表如下\n");
while(g<n)
{printf("%d,%d\n",god[g],FUCK[g]);
g++;}
while(s<n)
{for(f=0;f<n;f++)
{l=&god[f];i=&god[f+1];p=&FUCK[f];o=&FUCK[f+1];
toofuck(l,i,p,o);}s++;}
printf("学号表如下");
while(g<n)
{printf("%d,%d\n",god[g],FUCK[g]);
g++;}
printf("请输入想要查询的学号");
scanf("%d",&h);
j=0;
while(j<n)
{if(god[j]==h)
{printf("学号:%d 名次:%d 成绩:%d",god[j],j+1,FUCK[j]);
break;}j++;
}
a=0;b=0;c=0;d=0;e=0;
while(a<n)
{ if(FUCK[a]>90)
c++;
if(FUCK[a]>70&&FUCK[a]<90)
d++;
if(FUCK[a]>60&&FUCK[a]<70)
e++;
if(FUCK[a]<60)
b++;a++;}
printf("优秀类别有%d人,占全部的%d%\n",c,c*100/n);
printf("良好类别有%d人,占全部的%d%\n",d,d*100/n);
printf("及格类别有%d人,占全部的%d%\n",e,e*100/n);
printf("不及格类别有%d人,占全部的%d%\n",b,b*100/n);}
void toofuck(int *x,int *y,int *z,int *w)
{ int a;
if(*x<*y)
{a=*x;
*x=*y;
*y=a;
a=*z;
*z=*w;
*w=a;}}
运行后的图片:
任务2:
从键盘输入5个整数存入一维数组中,输出最大的数,再按反序输出(要求用指针访问数组元素)
我的程序:
#include<stdio.h>
void main()
{
int a[5],*b,i,*c;
printf("输入5个整数\n");
for(i=1;i<=5;i++)
scanf("%d",&a[i-1]);
c=&a[0];
for(i=1;i<5;i++)
{
if(a[i-1]<a[i])
c=&a[i];
}
printf("最大的数:%d\n",*c);
for(i=1;i<=5;i++)
{
b=&a[5-i];
printf("%d ",*b);
}
}
图片如下:
上机感谢:
本次上机非本人制作,是研究陈勇任和叶方一的,陈勇任的第二个任务我看不懂,顺便求老师指导。。。。。。。