栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PAT乙级1004题解(C语言)实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PAT乙级1004题解(C语言)实现

大家好啊,这里是Cyber Striver的博客。今天我继续为大家带来PAT乙级的题解。

目录

题目

题解

思路

经验总结


题目

 


题解
#include 
int main()
{
    struct 
	{
		char name[11];
		char number[11];
		int score;
	}a[10000];
	int n = 0;
	scanf("%d", &n);
	int i = 0,max=0,min=0;
	for (i = 0; i < n; i++)
	{
		scanf("%s", &(a[i]).name);
		scanf("%s", &(a[i]).number);
		scanf("%d", &(a[i]).score);
	}
	int MAX = a[0].score,MIN=a[0].score;
	for (i = 0; i < n; i++)
	{
		if (a[i].score > MAX)
		{
			MAX = a[i].score;
			max = i;
		}
	}
	for (i = 0; i < n; i++)
	{
		if (a[i].score < MIN)
		{
			MIN = a[i].score;
			min = i;
		}
	}
	printf("%s %sn", (a[max]).name, (a[max]).number);
	printf("%s %sn", (a[min]).name, (a[min]).number);
	return 0;
}


思路

  这道题比较简单,考察的是比较基本的结构体的知识。在一看见这道题的时候我就想到了要用一个结构体来容纳不同学生的各项数据。思路也比较简单:先创建结构体,然后把数据存在结构体中,然后通过比大小的程序得出最大值和最小值,最后输出。

  虽然比较简单,但是跟着我一起来分析分析代码吧!


 struct 
	{
		char name[11];
		char number[11];
		int score;
	}a[10000];
	int n = 0;
	scanf("%d", &n);
	int i = 0,max=0,min=0;
	for (i = 0; i < n; i++)
	{
		scanf("%s", &(a[i]).name);
		scanf("%s", &(a[i]).number);
		scanf("%d", &(a[i]).score);
	}

  这一部分,我创建了一个结构体类型的数组,因为怕输出的太多了导致溢出问题,所以就直接怼到10000个了。

  创建了max,min用来记录最大最小值的下标以便后期追踪打印。

  然后就开始输入各项数据。


  

int MAX = a[0].score,MIN=a[0].score;
	for (i = 0; i < n; i++)
	{
		if (a[i].score > MAX)
		{
			MAX = a[i].score;
			max = i;
		}
	}
	for (i = 0; i < n; i++)
	{
		if (a[i].score < MIN)
		{
			MIN = a[i].score;
			min = i;
		}
	}
	printf("%s %sn", (a[max]).name, (a[max]).number);
	printf("%s %sn", (a[min]).name, (a[min]).number);

  这一部分实现了,找到成绩的最大值和最小值,并把它们对应的下标存储到max和min当中以便接下来打印。


经验总结

  记得没错的话,这是我第一次在刷题中使用结构体,一开始使用的时候还有点生疏,甚至是结构体的一些基本定义方式都有点模糊不清了!学而不用则忘啊!

  1)结构体的定义方式:

struct 
	{
		char name[11];
		char number[11];         语句;不要忘记打“:”
		int score;
	}a[10000];               这里是需要定义的变量名,注意变量名后也需要“:”     

    2)结构体类型的定义方式:

  第一种:

struct student
	{
		char name[11];
		char number[11];
		int score;
	};                //定义了名为student的结构体类型。注意大括号面的“;”
student a[10000];

  第二种:

typedef struct      //注意student这时必须在末尾而不能在struct左边。
	{
		char name[11];
		char number[11];
		int score;
	}student;
student a[10000];

  3)一些运算符的优先级:(如果你拿不定把握,用括号就完事了!)

 


本次博客到这里就结束了,如果你觉得我的文章还不错的话,请给我多多点赞评论哦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号