C语言 | 计算总平均分及第n个人的成绩

例32:有一个班,3个学生,各学习4门课,C语言编程实现计算总平均分数以及第n个学生的成绩,要求使用指针。

解题思路:今天这道例题分为3部分,下述求的是第3个学生,读者请思考怎么改为求第n个学生。

第一步:求平均分函数:

void average(float *p,int n)//自定义求平均成绩函数 
{
   
  float *p_end;//定义浮点类型指针变量 
  float sum=0,aver;//定义浮点型变量 
  p_end=p+n-1;//把地址赋给指针变量 
  for(;p<=p_end;p++)//for循环,注意第一处分号 
  {
   
    sum=sum+(*p);//总和 
  } 
  aver=sum/n;//平均分 
  printf("平均数是:%f",aver);//输出平均分 
  printf("\n");//换行 
}

第二步:求第n个学生成绩函数

void search_Grade(float 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是计算学生平均成绩和各科成绩最高分的C语言代码示例: ```c #include <stdio.h> struct Student { int id; char name[50]; char className[50]; float mathScore; float englishScore; float computerScore; }; int main() { struct Student students[100]; int numStudents; // 从用户输入获取学生信息 printf("请输入学生人数:"); scanf("%d", &numStudents); for (int i = 0; i < numStudents; i++) { printf("请输入第%d个学生的学号:", i + 1); scanf("%d", &students[i].id); printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的班级:", i + 1); scanf("%s", students[i].className); printf("请输入第%d个学生的数学成绩:", i + 1); scanf("%f", &students[i].mathScore); printf("请输入第%d个学生的英语成绩:", i + 1); scanf("%f", &students[i].englishScore); printf("请输入第%d个学生的计算成绩:", i + 1); scanf("%f", &students[i].computerScore); } // 计算每个学生的平均成绩 for (int i = 0; i < numStudents; i++) { float averageScore = (students[i].mathScore + students[i].englishScore + students[i].computerScore) / 3; printf("学生%d的平均成绩为:%.2f\n", students[i].id, averageScore); } // 计算各科成绩的最高分 float maxMathScore = students[0].mathScore; float maxEnglishScore = students[0].englishScore; float maxComputerScore = students[0].computerScore; for (int i = 1; i < numStudents; i++) { if (students[i].mathScore > maxMathScore) { maxMathScore = students[i].mathScore; } if (students[i].englishScore > maxEnglishScore) { maxEnglishScore = students[i].englishScore; } if (students[i].computerScore > maxComputerScore) { maxComputerScore = students[i].computerScore; } } printf("数学成绩的最高分为:%.2f\n", maxMathScore); printf("英语成绩的最高分为:%.2f\n", maxEnglishScore); printf("计算成绩的最高分为:%.2f\n", maxComputerScore); return 0; } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值