结构体之统计最高分最低分

本文介绍了如何在C++中利用结构体来处理数据,具体示例展示了如何通过编程找出一组分数中的最高分和最低分。通过定义包含姓名和分数的结构体,实现了对数据的有效组织,并通过遍历结构体数组实现统计功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题及代码:


/*文件名称:结构体
完成日期:2016年4月13日
作者;马艳艳
问题描述:输入学生的姓名和成绩,统计出最高分的学生和最低分的学生。
输入描述:输入5个学生的姓名和分数,用结构体完成
输出描述:输出最高分的姓名和分数,最低分的姓名和分数。*/



#include<iostream>
using namespace std;
struct Student
{
    string name;
    float score;
}stu[5];
int main()
{
    int i;

   int m,n;
    float max=0,min=1000;
    for(i=0;i<5;i++)
    {
        cin>>stu[i].name>>stu[i].score;
    }
     for(i=0;i<5;i++)
     {
         if(stu[i].score>max)
         {
            max=stu[i].score;
           m=i;
         }


         if(stu[i].score<min)
         {
              min=stu[i].score;
            n=i;
         }


     }
     cout<<"MAX:  "<<stu[m].name<<"  "<<stu[m].score<<endl;
     cout<<endl;
     c
在C语言中,我们可以创建一个简单的函数来统计最高分最低分、平均分及格率。假设我们有一个包含学生分数的数组,并已知总人数及格线分数,下面是一个简化的示例: ```c #include <stdio.h> // 定义结构体表示单个学生的数据 typedef struct { int score; } Student; // 函数声明 void calculateStats(int* scores, int numStudents, int passingScore); int main() { // 示例数组,你可以替换为实际读取的输入 int scores[] = {85, 90, 78, 92, 88}; int numStudents = sizeof(scores) / sizeof(scores[0]); int passingScore = 80; // 及格分数线 calculateStats(scores, numStudents, passingScore); return 0; } // 统计函数 void calculateStats(int* scores, int numStudents, int passingScore) { if (numStudents <= 0) { printf("错误:没有学生数据\n"); return; } // 初始化变量 int maxScore = scores[0], minScore = scores[0]; float sum = 0.0, average = 0.0; int passedCount = 0; // 计算最高分最低分 for (int i = 0; i < numStudents; ++i) { sum += scores[i]; maxScore = (scores[i] > maxScore) ? scores[i] : maxScore; minScore = (scores[i] < minScore) ? scores[i] : minScore; // 判断是否及格 if (scores[i] >= passingScore) { passedCount++; } } // 计算平均分 average = (float)sum / numStudents; // 打印结果 printf("最高分:%d\n", maxScore); printf("最低分:%d\n", minScore); printf("平均分:%.2f\n", average); printf("及格率:%.2f%%\n", (passedCount * 100.0) / numStudents); // 及格率计算可能有小数点,这里四舍五入到两位 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值