您的位置:首页 > 编程语言 > C语言/C++

C程序设计课程-2012电子信息 第九次实验任务

2013-05-31 13:29 337 查看
任务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 id
,score
;
float ave;
int n,i,j,temp;
int sum=0;
printf("请输入具体学生人数:");
scanf_s("%d",&n);

printf("请每个学生的学号和考试成绩:\n");
for(i=0;i<n;i++)
{
scanf_s("%d%d",&id[i],&score[i]);
}

for(i=0;i<n;i++)
{
sum=sum+score[i];
}
ave=float(sum/n);
printf("总分:%d\n平均分:%f\n",sum,ave);

for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(id[j]>id[j+1])
{
temp=id[j];
id[j]=id[j+1];
id[j+1]=temp;
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
printf("按学号由小到大排出成绩表:\n");
for(i=0;i<n;i++)
{
printf("%d  %d\n",id[i],score[i]);
}

for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(score[j]<score[j+1])
{
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
temp=id[j];
id[j]=id[j+1];
id[j+1]=temp;
}
}
}
printf("按成绩由高到低排出名次表:\n");
for(i=0;i<n;i++)
{
printf("%d  %d\n",id[i],score[i]);
}

printf("输入学生学号:");
int x;
scanf_s("%d",&x);
for(i=0;i<n;i++)
{
if(id[i]==x) break;
}
printf("排名:%d    分数:%d\n",i+1,score[i]);

j=0;
for(i=0;i<n;i++)
{
if(score[i]<=100&&score[i]>=90)
{
j++;
}
}
float a;
a=j*1.0/n*100;
printf("优秀百分比:%f\n",a);

j=0;
for(i=0;i<n;i++)
{
if(score[i]<90&&score[i]>=70)
{
j++;
}
}
float b;
b=j*1.0/n*100;
printf("良好百分比:%f\n",b);

j=0;
for(i=0;i<n;i++)
{
if(score[i]<70&&score[i]>=60)
{
j++;
}
}
float c;
c=j*1.0/n*100;
printf("及格百分比:%f\n",c);

j=0;
for(i=0;i<n;i++)
{
if(score[i]<60&&score[i]>=0)
{
j++;
}
}
float d;
d=j*1.0/n*100;
printf("不及格百分比:%f\n",d);
}




----------------------分割线----------------------
任务2:

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

#include<stdio.h>
void main()
{
int a[5];
int i,max;
printf("请输入5个整数:\n");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
printf("最大数:");
max=a[0];
for(i=1;i<5;i++)
{
if(a[i]>max)
max=a[i];
}
printf("%d\n",max);
printf("反序输出:\n");
for(i=4;i>=0;i--)
{
printf("%d\n",*(a+i));
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息