当前位置: 首页 > news >正文

【C语言】11月第二次测试 ing

文章目录


1.输入n名同学的成绩和学号,对成绩排序,输出对应学号
要求重复的学号重新输入
计算n名同学的平均值,对小于60分的同学删除分数
大于60分的同学输出:优秀:几人,良好:几人,中等:几人,合格:几人

#include <stdio.h>#define number 1000int main() {int n; // 学生人数printf("请输入学生人数 n: ");scanf("%d", &n);int ids[number]; // 存储学号int scores[number]; // 存储成绩int tempId, tempScore; // 用于交换数据// 输入学生成绩和学号for (int i = 0; i < n; ) {printf("请输入第 %d 名学生的学号和成绩: ", i + 1);scanf("%d %d", &tempId, &scores[i]);// 检查学号是否重复int isDuplicate = 0;for (int j = 0; j < i; j++) {if (ids[j] == tempId) {printf("学号重复,请重新输入第 %d 名学生的学号和成绩: ", i + 1);isDuplicate = 1;break;}}if (!isDuplicate) {ids[i] = tempId;i++;}}// 对成绩进行排序,并保持学号的对应关系for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - 1 - i; j++) {if (scores[j] < scores[j + 1]) {// 交换成绩tempScore = scores[j];scores[j] = scores[j + 1];scores[j + 1] = tempScore;// 交换学号tempId = ids[j];ids[j] = ids[j + 1];ids[j + 1] = tempId;}}}// 输出排序后的成绩和对应的学号printf("排序后的成绩和对应的学号:\n");for (int i = 0; i < n; i++) {printf("%d %d\n", scores[i], ids[i]);}// 计算平均分int sum = 0;for (int i = 0; i < n; i++) {sum += scores[i];}double average = (double)sum / n;printf("平均分是: %.2f\n", average);// 删除小于60分的成绩int count = 0;for (int i = 0; i < n; i++) {if (scores[i] >= 60) {scores[count] = scores[i];ids[count] = ids[i];count++;}}n = count; // 更新学生人数// 输出等级分布int oen = 0, two = 0, three = 0, pass = 0;for (int i = 0; i < n; i++) {if (scores[i] >= 90) oen++;else if (scores[i] >= 80) two++;else if (scores[i] >= 70) three++;else if (scores[i] >= 60) pass++;}printf("优秀:%d人,良好:%d人,中等:%d人,合格:%d人\n", oen, two, three, pass);return 0;
}

在这里插入图片描述
2,输入45矩阵
先输入3
5,然后将每一列最大值放在第4行
计算靶点数据(在该行上最小,该列上最大),若有输出该元素和第几行、第几列
对列排序(奇数列最大,偶数列最小)

#include <stdio.h>int main() {int matrix[3][5]; // 原始3x5矩阵int result[4][5]; // 结果4x5矩阵int maxInCol[5]; // 用于存储每列的最大值int targetRow, targetCol; // 用于记录靶点数据的行和列int minInRow, maxInColTemp; // 临时变量用于比较找到靶点数据// 用户输入3x5矩阵printf("请输入3x5矩阵的元素:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {scanf("%d", &matrix[i][j]);}}for (int j = 0; j < 5; j++) {maxInCol[j] = matrix[0][j];for (int i = 0; i < 3; i++) {if (matrix[i][j] > maxInCol[j]) {maxInCol[j] = matrix[i][j];}result[i][j] = matrix[i][j];}}// 将每列最大值放入结果矩阵的第4行for (int j = 0; j < 5; j++) {result[3][j] = maxInCol[j];}// 寻找靶点数据for (int i = 0; i < 4; i++) {minInRow = result[i][0];targetCol = 0;for (int j = 1; j < 5; j++) {if (result[i][j] < minInRow) {minInRow = result[i][j];targetCol = j;}}maxInColTemp = result[0][targetCol];targetRow = 0;for (int k = 1; k < 4; k++) {if (result[k][targetCol] > maxInColTemp) {maxInColTemp = result[k][targetCol];targetRow = k;}}if (minInRow == maxInColTemp) {printf("靶点数据为:%d,位于第 %d 行,第 %d 列\n", minInRow, targetRow, targetCol);}}for (int j = 0; j < 5; j++) {if (j % 2 == 1) {// 奇数列,从大到小排序for (int i = 0; i < 4 - 1; i++) {for (int k = 0; k < 4 - i - 1; k++) {if (result[k][j] < result[k + 1][j]) {// 交换元int temp = result[k][j];result[k][j] = result[k + 1][j];result[k + 1][j] = temp;}}}} else {// 偶数列,从小到大排序for (int i = 0; i < 4 - 1; i++) {for (int k = 0; k < 4 - i - 1; k++) {if (result[k][j] > result[k + 1][j]) {// 交换元素int temp = result[k][j];result[k][j] = result[k + 1][j];result[k + 1][j] = temp;}}}}}// 输出排序后的4x5矩阵printf("排序后的4x5矩阵是:\n");for (int i = 0; i < 4; i++) {for (int j = 0; j < 5; j++) {printf("%d ", result[i][j]);}printf("\n");}return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/489814.html

相关文章:

  • 行列式的理解与计算:线性代数中的核心概念
  • 按出生日期排序(结构体专题)
  • 【C++】拆分详解 - 多态
  • Python世界:力扣题解875,珂珂爱吃香蕉,中等
  • Java设计模式 —— Java七大设计原则详解
  • SpringBoot学习记录(六)配置文件参数化
  • android 使用MediaPlayer实现音乐播放--获取音乐数据
  • .net 8使用hangfire实现库存同步任务
  • 第 22 章 - Go语言 测试与基准测试
  • VB.Net笔记-更新ing
  • centos 服务器 docker 使用代理
  • python语言基础
  • Python中的Apriori库详解
  • MongoDB比较查询操作符中英对照表及实例详解
  • 掌上单片机实验室 – RT-Thread + ROS2 初探(25)
  • ‌Kotlin中的?.和!!主要区别
  • iframe嵌入踩坑记录
  • 面试小札:Java的类加载过程和类加载机制。
  • Spring 上下文对象
  • Wireshark抓取HTTPS流量技巧
  • 测试人员--如何区分前端BUG和后端BUG
  • 【Vue】指令扩充(指令修饰符、样式绑定)
  • Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0
  • HTML常用表格与标签
  • 网络安全与加密
  • MySQL数据库-索引的介绍和使用
  • 【图像去噪】论文精读:Pre-Trained Image Processing Transformer(IPT)
  • Java SE 与 Java EE:基础与进阶的探索之旅
  • ssm旅游推荐系统的设计与开发
  • 【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理