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

这篇具有很好参考价值的文章主要介绍了【C/PTA —— 14.结构体1(课外实践)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.函数题

6-1 选队长

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 按等级统计学生成绩

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 学生成绩比高低

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 综合成绩

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 利用“选择排序算法“对结构体数组进行排序

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 结构体的最值

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 复数相乘运算

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

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 一帮一

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体

#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 考试座位号

【C/PTA —— 14.结构体1(课外实践)】,C语言,#PTA,## 结构体,c语言,算法,数据结构,结构体文章来源地址https://www.toymoban.com/news/detail-757328.html

#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(课外实践)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7-1 回文判断(数据结构) PTA C语言

    回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。 若用C++,可借助STL的容器实现。 输入格式: 输入待判断的字符序列,按回车键结束,字符序列长度20。 输出格式: 若字符序列是

    2024年02月02日
    浏览(35)
  • 【零基础】学python数据结构与算法笔记14-动态规划

    学习python数据结构与算法,学习常用的算法, b站学习链接 动态规划在基因测序、基因比对、hmm 有应用场景。 从斐波那契数列看动态规划 练习: 使用递归和非递归的方法来求解斐波那契数列。 这种非递归求斐波那契数,可以看成是一个动态规划思想,每次都会把重复子问

    2023年04月09日
    浏览(34)
  • python算法与数据结构---单调栈与实践

    单调栈是一个栈,里面的元素的大小按照它们所在栈的位置,满足一定的单调性; 性质: 单调递减栈能找到左边第一个比当前元素大的元素 ; 单调递增栈能找到左边第一个比当前元素小的元素 ; 应用场景 一般用于解决第一个大于XXX或者第一个小于XXX这一类的题目 优点:

    2024年01月21日
    浏览(40)
  • 【数据结构与算法】掌握顺序栈:从入门到实践

       🌱博客主页:青竹雾色间. 🌱系列专栏:数据结构与算法 😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注 目录 前言 顺序栈的实现 初始化栈 判断栈空 判断栈满 入(进)栈 出栈 获取栈顶元素 示例代码 顺序栈的应用前景 当你学习数据结构和算法时,顺序栈(Sequential

    2024年02月08日
    浏览(52)
  • 《数据结构》_PTA_数据结构作业6:图

    1-1 无向连通图所有顶点的度之和为偶数。 T 1-2 无向连通图边数一定大于顶点个数减1 F 1-3 无向连通图至少有一个顶点的度为1。 F 1-4 用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. F 1-5 用邻接矩阵法存储图,占用的存储空间数只与图中结点个数

    2024年02月04日
    浏览(47)
  • 实践和项目:解决实际问题时,选择合适的数据结构和算法

    🎉欢迎来到数据结构学习专栏~实践和项目:解决实际问题时,选择合适的数据结构和算法 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:数据结构学习 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹

    2024年02月09日
    浏览(38)
  • 14-数据结构-二叉树的创建以及前中后遍历,以及结点和叶子节点的计算(C语言)

    概述:         二叉树,这里采用孩子链表存储法,即一个数据域和两个左右孩子指针域。随后递归进行遍历即可。在创建二叉树的时候,先创建各个二叉树结点(这里的结点采用动态分配,因此结点为指针变量),随后,再根据逻辑结构图,手动通过左右指针域,链接到对

    2024年02月11日
    浏览(36)
  • 7-1 天梯地图 (PTA-数据结构)

    本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。 输入格式: 输入在第一行给出两个正整数 N (2 ≤

    2024年02月02日
    浏览(29)
  • 7-1 抢红包(PTA - 数据结构)

    没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:

    2024年01月23日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包