c语言作业 编写一个输出学生成绩等级的程序
2、多分支结构的正确使用。
3、能够使用switch case语句实现。
4、正确使用break语句
5、if语句和switch语句的使用区别和注意事项。
以上要都包括 谢谢 如果正确的会加悬赏 展开
一、首先打开VC++
二、文件》》新建
三、创建一个C++空白文档头文件是必须声明的# include <stdio.h>
四、说下主体思想我们定义一个求每门课平均成绩的函数AverageCourse它的形参一个是二维数组,用来传递学生成绩;一个是指针变量(数组名),存放每门课的平均成绩:
void AverageCourse(float score[][4],float *avg)
{
int i,j;
float sum;
for(i=0;i<4;i++)
{
sum=0;
for(j=0;j<4;j++)
sum+=score[j][i];
avg[i]=sum/4;
}
}
五、之后我们定义一个求总平均成绩的函数AverageAll
它的形参一个是指针变量(数组名),传递一个首地址
n是要计算的成绩个数
float AverageAll(float *score, int n)
{
int i=0;
float sum = 0;
while(i<n)
{
sum+=score[i];
i++;
}
return sum/n;
}
六、我们还需定义一个查询学生成绩的函数AStudentScore
它的形参一个是指向数组的指针,n是要计算的学生号
void StudentScore(float(*score)[4], int n)
{
int i;
for(i=0; i<4; i++)
printf("%4.2f ", *(*(score+n)+i));
printf("\n");
}
下面是主函数
int main()
{
int num,i;
//定义一个数组aveCourse来存储每门课的平均成绩,
定义变量aveAll来存储总的平均成绩
float aveAll,aveCourse[4];
float score[4][4] = {{67, 78, 45, 88}, {76, 54, 90, 69},
{99, 45, 88, 99}, {98, 69, 77, 87}};//这是成绩,可以用scanf输入,也可以在这里定义
/* 调用函数AverageAll求16个分数的平均分 */
aveAll=AverageAll(&score[0][0],16);
printf("The average of all courses is:\n %f\n\n",aveAll);
/* 调用函数AverageCourse求4门客的平均分 */
AverageCourse(score,aveCourse);
for(i=0;i<4;i++)
printf("The average of %dth course is:\n %f\n",i,aveCourse[i]);
/* 求出序号是num的学生的成绩 */
printf("\nPlease input the num of student(0-3):\n");
scanf("%d", &num);
printf("The score of the %dth student is:\n",num);
StudentScore(score,num);
getch();
return 0;
}
七、程序运行结果
c语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
.... 楼主 这是分别用ifelse和switch写出吧?
分5个等级A,B,C,D,E.
90分以上为A,80~89分为B,70~79分为C,60分~69分为D,60分以下为E
if-else
#include<stdio.h>
main()
{
float sc;
printf("请键入成绩\n");
scanf("%d",&sc);
if(sc>100.0||sc<0)
printf("成绩输入错误\n");
else if(sc>=90.0)
printf("该生成绩为A\n");
else if(sc>=80.0)
printf("该生成绩为B\n");
else if(sc>=70.0)
printf("该生成绩为C\n");
else if(sc>=60.0)
printf("该生成绩为D\n");
else
printf("该生成绩为E\n");
}
switch
#include<stdio.h>
main()
{
unsigned sc,i=0;
char lv;
printf("请键入成绩\n");
scanf("%d",&sc);
switch(sc/10)
{
default:printf("成绩输入错误\n");i=1;break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:lv='E';break;
case 6:lv='D';break;
case 7:lv='C';break;
case 8:lv='B';break;
case 9:
case 10:lv='A';break;
}
if(i==0)
printf("学生等级为%c\n",lv);
}
#include<stdio.h>
void main()
{
float x=0;
printf("请输入一个成绩:");
scanf("%f",&x);
if(x>=90 && x<=100)
printf("优\n");
else if(x>=80 && x<90)
printf("良\n");
else if(x>=70 && x<80)
printf("中\n");
else if(x>=60 && x<70)
printf("及格\n");
else if(x>=0 && x<60)
printf("不及格\n");
else
printf("输入错误\n");
}
(3)
#include <stdio.h>
void main()
{
int x;
printf("\n请输入1个成绩(0-100):");
scanf("%d",&x);
switch(x/10) //x的值是0-100,x/10的值是0-10
{
case 10: //x=100
printf("\n优\n");
break;
case 9: //x:90-99
case 8: //x:80-89
printf("\n良\n");
break;
case 7: //x:70-79
printf("\n中\n");
break;
default:
printf("输入错误,请重新输入 !\n");
}
}
(5)if适合于单分支和双分支情况,switch适合多分枝,并且各分支取值为整数型、枚举型的情况,条理更清晰。if语句中要注意else与if的配对关系。switch语句要注意break语句的使用。
有两个人回答 您看您的回答和上面那位的一样吗 因为我一点都不知道 。。看这两个有点不一样不知道哪个给老师交上去好
有很多实现方法,只要能实现功能就可以。我的程序都是亲自运行过的,功能正确。
int main()
{
int score;
while(scanf("%d",$score)!=EOF)
{
if
else
if
else
.....}
return 0;
}
2017-11-16