编写一个程序,由键盘输入一个学生的6门课程成绩,求该学生的总分、平均分,并输出。(使用循环结构)
时间: 2024-02-25 09:54:41 浏览: 39
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main()
{
int i, score, sum = 0;
float avg;
for (i = 1; i <= 6; i++)
{
printf("请输入第%d门课程的成绩:", i);
scanf("%d", &score);
sum += score;
}
avg = (float)sum / 6;
printf("该学生的总分为:%d,平均分为:%.2f\n", sum, avg);
return 0;
}
```
该程序使用for循环,循环6次,每次从键盘输入一个课程的成绩,并将其累加到sum中。循环结束后,根据sum的值计算出平均分,并输出总分和平均分。注意,需要将sum强制转换为float类型再进行计算平均分,否则计算结果将会是整数类型。
相关问题
编写程序,求若干个学生(学生数从键盘获得)参加某课程考试的总分、平均分、最高分以及合格的人数,并输出从高到低排序的学生成绩。\n\n(提示:定义一个一维数组表示学生成绩,并从键盘获得这组成绩数据)
好的,以下是中文回复:
这道题需要编写一个程序,可以从键盘获取学生数和每个学生的考试成绩,然后计算出总分、平均分、最高分以及合格的人数,并将学生成绩从高到低排序后输出。
具体实现可以定义一个一维数组来存储学生成绩,然后使用循环语句从键盘获取每个学生的成绩,并将其存储到数组中。接着,可以使用数组的一些方法来计算总分、平均分、最高分以及合格的人数。最后,可以使用排序算法将学生成绩从高到低排序,并输出排序后的结果。
需要注意的是,题目中提到了合格的人数,这意味着需要定义一个合格分数线,然后统计有多少个学生的成绩达到了这个分数线。同时,排序算法的选择也需要考虑到性能和稳定性等因素。
用Fortran编写:输入若干名学生的姓名、学号和三门课程(语文、数学和英语)的成绩,要求从键盘输入一个学生的学号,能打印出该学生的三门课程成绩和总分。
下面是一个使用 Fortran 的示例程序,它满足你所描述的需求:
```fortran
program find_student
implicit none
character(len=20) :: name(100) ! 存储学生姓名
integer :: id(100) ! 存储学生学号
integer :: chinese(100), math(100), english(100) ! 存储学生三门课程成绩
integer :: total(100) ! 存储学生总分
integer :: num_students ! 存储学生数量
integer :: i ! 循环变量
integer :: input_id ! 存储输入的学号
logical :: found ! 标识是否找到学生
! 读入学生数据
write(*,'("请输入学生数量:")')
read(*,'(i)') num_students
do i = 1, num_students
write(*,'("请输入学生",i,"的姓名:")')
read(*,'(a)', advance='no') name(i)
write(*,'("请输入学生",i,"的学号:")')
read(*,'(i)') id(i)
write(*,'("请输入学生",i,"的语文成绩:")')
read(*,'(i)') chinese(i)
write(*,'("请输入学生",i,"的数学成绩:")')
read(*,'(i)') math(i)
write(*,'("请输入学生",i,"的英语成绩:")')
read(*,'(i)') english(i)
total(i) = chinese(i) + math(i) + english(i)
end do
! 读入要查找的学生学号
write(*,'("请输入要查找的学生学号:")')
read(*,'(i)') input_id
! 查找学生
found = .false.
do i = 1, num_students
if (id(i) == input_id) then
found = .true.
write(*,'("学生姓名:",a)') name(i)
write(*,'("语文成绩:",i2)') chinese(i)
write(*,'("数学成绩:",i2)') math(i)