【C/PTA —— 14.结构体1(课外实践)】

2023-12-05 08:52
文章标签 实践 14 结构 pta 课外

本文主要是介绍【C/PTA —— 14.结构体1(课外实践)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C/PTA —— 14.结构体1(课外实践)

  • 一.函数题
    • 6-1 选队长
    • 6-2 按等级统计学生成绩
    • 6-3 学生成绩比高低
    • 6-4 综合成绩
    • 6-5 利用“选择排序算法“对结构体数组进行排序
    • 6-6 结构体的最值
    • 6-7 复数相乘运算
  • 二.编程题
    • 7-5 一帮一
    • 7-6 考试座位号

一.函数题

6-1 选队长

在这里插入图片描述

void showCaptain(TeamMember team[], int n)
{TeamMember max;max = team[0];for (int i = 1; i < n; i++){if (max.ability < team[i].ability)max = team[i];}printf("%d %s %s %s %.2lf", max.id, max.lastname,max.firstname, max.sex, max.ability);
}

6-2 按等级统计学生成绩

在这里插入图片描述

int set_grade(struct student* p, int n)
{int count = 0;for (int i = 0; i < n; i++){if (p[i].score >= 85 && p[i].score <= 100)p[i].grade = 'A';if (p[i].score >= 70 && p[i].score <= 84)p[i].grade = 'B';if (p[i].score >= 60 && p[i].score <= 69)p[i].grade = 'C';if (p[i].score >= 0 && p[i].score <= 59){p[i].grade = 'D';count++;}     }return count;
}

6-3 学生成绩比高低

在这里插入图片描述

int compareScore(const struct Student* s1, const struct Student* s2)
{if ((s1->C + s1->English) > (s2->C + s2->English))return 1;if ((s1->C + s1->English) < (s2->C + s2->English))return -1;if ((s1->C + s1->English) == (s2->C + s2->English)){if (s1->C > s2->C)return 1;if (s1->C < s2->C)return -1;if (s1->C == s2->C)return 0;}
}

6-4 综合成绩

在这里插入图片描述

double getAverage(Applicant* a)
{double sum = 0.0;sum = a->computational * 1.0 * 0.4 + a->humanistic * 1.0 * 0.5 + a->logical * 1.0 * 0.3 + a->presentation * 1.0 * 0.6 + a->scientific * 1.0 * 0.8;return sum;
}

6-5 利用“选择排序算法“对结构体数组进行排序

在这里插入图片描述

int min_idx = p1->score;
for (p2 = p1 + 1; p2 < pData + n; p2++)
{if (p2->score > min_idx){min_idx = p2->score;p = p2;}
}
if (min_idx != p1->score)
{num = p1->num;score = p1->score;p1->num = p->num;p1->score = p->score;p->num = num;p->score = score;
}

6-6 结构体的最值

在这里插入图片描述

ST* MaxST(ST d[], int n, int k)
{ST* max = NULL;for (int i = 0; i < n; i++){if (d[i].gender == k && (max == NULL || max->scored < d[i].scored)){max = &d[i];}}return max;
}

6-7 复数相乘运算

在这里插入图片描述

PLEX multi(PLEX a, PLEX b)
{PLEX product;product.re = a.re * b.re - a.im * b.im;product.im = a.re * b.im + a.im * b.re;return product;
}

二.编程题

7-5 一帮一

在这里插入图片描述

#include<stdio.h>
#include<string.h>struct student
{int a;char name[20];
};struct student1
{int b;char name1[20];
};int main()
{struct student  s1[50];struct student1 s2[50];struct student1 s3[50];int i, n, j = 0, t = 0, c, d;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%d %s", &s1[i].a, s1[i].name);}for (i = 0; i < n; i++){if (s1[i].a == 1){s2[j].b = i;strcpy(s2[j].name1, s1[i].name);j++;}if (s1[i].a == 0){s3[t].b = i;strcpy(s3[t].name1, s1[i].name);t++;}}c = n / 2 - 1, d = n / 2 - 1;j = 0, t = 0;for (i = 0; i < n / 2; i++){if (s3[j].b < s2[t].b){printf("%s %s\n", s3[j].name1, s2[c].name1);j++;c--;}else{printf("%s %s\n", s2[t].name1, s3[d].name1);t++;d--;}}return 0;
}

7-6 考试座位号

在这里插入图片描述

#include<stdio.h>
struct student
{char number[17];int s;int k;
};int main()
{int N = 0;scanf("%d", &N);struct student stu[1001] = {0};for (int i = 0; i < N; i++){scanf("%s %d %d", stu[i].number, &stu[i].s, &stu[i].k);}int n = 0;scanf("%d", &n);int ret = 0;for (int i = 0; i < n; i++){scanf("%d", &ret);int j = 0;for (j = 0; j < N; j++){if (ret == stu[j].s){printf("%s %d\n", stu[j].number, stu[j].k);}}}return 0;
}

这篇关于【C/PTA —— 14.结构体1(课外实践)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/456923

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java 结构化并发Structured Concurrency实践举例

《Java结构化并发StructuredConcurrency实践举例》Java21结构化并发通过作用域和任务句柄统一管理并发生命周期,解决线程泄漏与任务追踪问题,提升代码安全性和可观测性,其核心... 目录一、结构化并发的核心概念与设计目标二、结构化并发的核心组件(一)作用域(Scopes)(二)任务句柄

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4