输入统计学生成绩
来源:互联网 发布:淘宝子账号分流权重 编辑:程序博客网 时间:2024/05/01 04:03
/// @file exam_1_5.c/// @brief /**exam_1_5 *从键盘输入10个学生的数据,包括:学号、姓名、三门课的成绩。要求输出三门课总平均 成绩,及最高分学生的数据(学号、姓名、三门课成绩、平均分数)。*/#include <windows.h>#include <stdlib.h>#include <stdio.h>#include <crtdbg.h>typedef struct _tag_student_score_info_input{ size_t nId; char cName[31]; int iScoreLanguage; int iScoreMath; int iScorePhysics; float fScoreAverage;}TAG_STUDENT_SCORE_INFO_INPUT;typedef struct _tag_students_score_info_output{ int iStudentCnt; double fGradePoint_Language; double fGradePoint_Math; double fGradePoint_Physics;}TAG_STUDENTS_SCORE_INFO_OUTPUT;void printStudentInfo(TAG_STUDENT_SCORE_INFO_INPUT* pInfo);void printOutputInfo(TAG_STUDENTS_SCORE_INFO_OUTPUT* pInfo);void fnScoreInputAndParse();int main(int argc, char *argv[ ], char *envp[ ]){ fnScoreInputAndParse(); printf("END, press any key to quit\n"); getchar(); return 0;}void fnScoreInputAndParse(){ int i = 0; TAG_STUDENT_SCORE_INFO_INPUT Input; TAG_STUDENT_SCORE_INFO_INPUT BestOne; TAG_STUDENTS_SCORE_INFO_OUTPUT Output; ZeroMemory(&Input, sizeof(TAG_STUDENT_SCORE_INFO_INPUT)); ZeroMemory(&BestOne, sizeof(TAG_STUDENT_SCORE_INFO_INPUT)); ZeroMemory(&Output, sizeof(TAG_STUDENTS_SCORE_INFO_OUTPUT)); for (i = 0; i < 3/*10*/; i++) { printf("please input NO.%d's ID:", i + 1); scanf("%d", &Input.nId); fflush(stdin); printf("please input NO.%d's Name:", i + 1); scanf("%30s", &Input.cName); ///< safe input fflush(stdin); printf("please input NO.%d's Score Language:", i + 1); scanf("%d", &Input.iScoreLanguage); fflush(stdin); printf("please input NO.%d's Score Math:", i + 1); scanf("%d", &Input.iScoreMath); fflush(stdin); printf("please input NO.%d's Score Physics:", i + 1); scanf("%d", &Input.iScorePhysics); fflush(stdin); Input.fScoreAverage = .0f; Input.fScoreAverage += Input.iScoreLanguage; Input.fScoreAverage += Input.iScoreMath; Input.fScoreAverage += Input.iScorePhysics; Input.fScoreAverage /= 3; if (Input.fScoreAverage > BestOne.fScoreAverage) { /// is a new best memcpy(&BestOne, &Input, sizeof(TAG_STUDENT_SCORE_INFO_INPUT)); } Output.iStudentCnt++; Output.fGradePoint_Language += Input.iScoreLanguage; Output.fGradePoint_Math += Input.iScoreMath; Output.fGradePoint_Physics += Input.iScorePhysics; } printf("the best one:\n"); printStudentInfo(&BestOne); printf("All students grade point average :\n"); printOutputInfo(&Output);}void printStudentInfo(TAG_STUDENT_SCORE_INFO_INPUT* pInfo){ _ASSERT(NULL != pInfo); printf("\tID = %d\n", pInfo->nId); printf("\tName = %s\n", pInfo->cName); printf("\tScoreAverage = %f\n", pInfo->fScoreAverage); printf("\tScoreLanguage = %d\n", pInfo->iScoreLanguage); printf("\tScoreMath = %d\n", pInfo->iScoreMath); printf("\tScorePhysics = %d\n", pInfo->iScorePhysics); printf("\n");}void printOutputInfo(TAG_STUDENTS_SCORE_INFO_OUTPUT* pInfo){ _ASSERT(NULL != pInfo); printf("\tAverageScoreLanguage = %f\n", pInfo->fGradePoint_Language / pInfo->iStudentCnt); printf("\tAverageScoreMath = %f\n", pInfo->fGradePoint_Math / pInfo->iStudentCnt); printf("\tAverageScorePhysics = %f\n", pInfo->fGradePoint_Physics / pInfo->iStudentCnt); printf("\n");}
0 0
- 输入统计学生成绩
- 学生成绩统计器
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 数据库统计学生成绩
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计
- 学生成绩统计程序
- 框架模式 MVC 在Android中的使用
- Android Metrail Design
- update 的SQL语句执行遇到的一个错误
- 关于String.Split()的6个重载函数
- error: insufficient permissions for device(adb shell连接不上问题)
- 输入统计学生成绩
- 设置android studio打开时进入欢迎界面
- Redis 2.6 Redis 2.8 与ssdb的简单对比
- StringBuffer和String的优缺点比较--------HashMap和Hashtable的区别
- 函数式宏定义与普通函数
- http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/
- JavaWeb三大组件之Filter
- 用 Python 和 OpenCV 检测图片上的条形码
- win编程实践(4)【c++】- 多维数组指针