2019-07-04失踪人口再次回归并表示这次可能一下子更新八篇哈哈哈哈哈然后争取超过老宋早日到达一百天完成打卡任务!!!啊可是今天好困哦下午可能还要收拾寝室想想就头大人生好艰难啊下辈子要做大熊猫嘻嘻

PAT乙级1004可能是道傻瓜题,太简单了……根本没有技术含量……

直接贴代码,题干就是给你学生姓名、学号以及成绩,输出最高成绩的学生姓名及学号then最低的……还以为要用链表,然而并没有……暑假可能还要复习数据结构……

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int num;
    cin>>num;
    int i,mark,l_mark,h_mark;
    string name,stu,l_name,h_name,l_stu,h_stu;
    cin>>name>>stu>>mark;
    l_name=name;l_stu=stu;l_mark=mark;
    h_name=name;h_stu=stu;h_mark=mark;
    for(i=1;i<num;i++)
    {
        cin>>name>>stu>>mark;
        if(mark>h_mark)
        {
            h_name=name;h_stu=stu;h_mark=mark;
        }
        else if(mark<l_mark)
        {
            l_name=name;l_stu=stu;l_mark=mark;
        }
        else continue;
    }
    cout<<h_name<<" "<<h_stu<<endl;
    cout<<l_name<<" "<<l_stu;
    return 0;
}

PAT1005是1001的继续再升级版,但是也不难。

就是在后面的数里面找一下是否在前面的运算过程中出现过,如果出现过,那就pass;否则就标记为“关键数”,最后将关键数按照从大到小的顺序输出,并有一定的输出格式(忽略吧)。

这种时候当然用vector啦,注意添加头文件#include <vector>,然后后面用到的sort函数以及find函数,要添加头文件#include <algorithm>。

还有后面出现的一个问题就是,sort完是从小到大排列的,需要翻转一下再进行输出,reverse(ans.begin(), ans.end());

贴代码啦!!!

但是只是17/25,一会儿分析一下其他大神的!

#include<iostream>
#include <vector>
#include<algorithm>
#include<cstdlib>
using namespace std;

vector<int>sum;
vector<int>ans;
int first = 0;
int j = 0;

void test(int a)
{
	vector<int>::iterator it;
	int flag = 0;
	if (first == 0)
	{
		flag = 1; 
	}
	else
	{
		it = find(sum.begin(), sum.end(), a);
		if (it == sum.end())
		{
			ans.push_back(a);
			flag = 1; j ++;
		}
		else flag = 0;
	}
	while (a != 1 && flag)
	{
		if (a % 2 == 0)
		{
			a = a / 2;
			sum.push_back(a);
		}
		else
		{
			a = (a * 3 + 1) / 2;
			sum.push_back(a);
		}
	}
	first++;
}

int main()
{
	int num, i;
	cin >> num;

	sum.push_back(1);

	int b;
	for (i = 0; i<num; i++)
	{
		cin >> b;
		test(b);
	}
	sort(ans.begin(), ans.end());
	reverse(ans.begin(), ans.end());
	for (int m = 0; m < j - 1;m++)
	{
		cout << ans[m] << " ";
	}
	cout << ans[j - 1];
	//system("PAUSE");
	return 0;
}

围观了别人的算法,大多是建立一个bool型的数组,记录这个数是否出现过。然后大多数自己写的sort……我大概比较懒吧,反正还是没找到为什么几个测试点过不去……就酱紫吧哈哈哈哈哈哈

发布了42 篇原创文章 · 获赞 16 · 访问量 2894

猜你喜欢

转载自blog.csdn.net/weixin_44412218/article/details/94597399