cpython3


私信TA

用户名:smartZhou

访问量:71410

签 名:

等  级
排  名 36
经  验 12900
参赛次数 1
文章发表 99
年  龄 0
在职情况 学生
学  校
专  业 计算机科学与技术

  自我简介:

题目描述:

有人说倒数第一是毫无压力的,因为没人任何压力而言,但反而倒数第二是提心吊胆的,因为担心倒数第一有一天考试的时候不来,自己沦为倒数第一(^_^)

这道题就是求n个成绩(整数)中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是2,2,5,
那么,第二小的数就是2。



解题思路:

本题可以采用多组测试或单组测试!

多组测试:

(1)while(cin>>C) 或者 while(~scanf("%d",&C))或者while(scanf("%d",&C)!=EOF)

(2)循环C次: while(C--)

(3)将数组存入容器: vec.push_back(num)

(4)把所有数据由从小到大排序:

            sort(vec.begin(),vec.end());

(5)排序后,第二小的数就是数组的第2个元素: vec[1].

(6)输出vec[1]: cout<<vec[1];


注意事项:

以下两种代码都能通过测试(C++),C/C++是一门语言,不分家的!


参考代码(多组测试):

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
	int C;
	vector<int> vec;
	while(cin>>C)
	{
		while(C--)
		{
		int cnt;
		cin>>cnt;
		while(cnt--)
		{
			int num;
			cin>>num;
			vec.push_back(num);
		}
		sort(vec.begin(),vec.end());
		cout<<vec[1]<<endl;		
		}
	}
	return 0;
}

单组测试:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
	int C;
	vector<int> vec;
	cin>>C; 
	while(C--)
	{
		int cnt;
		cin>>cnt;
		while(cnt--)
		{
			int num;
			cin>>num;
			vec.push_back(num);
		}
		sort(vec.begin(),vec.end());
		cout<<vec[1]<<endl;		
	}

	return 0;
}


 

0.0分

6 人评分

  评论区