7-6 按顺序输出
分数 15
全屏浏览
切换布局
作者 fpc
单位 内蒙古师范大学
本题目要求读入3个整数a,b,c,然后按从小到大的顺序输出。
输入格式:
输入在一行中给出2个绝对值不超过1000的整数a,b,c。
输出格式:
对每一组输入,按照从小到大的顺序在一行内输出两个数,中间用"<"分割(行尾无需换行)。
输入样例:
5 3 4
输出样例:
3<4<5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
背景:
今天的作业,想用vector然后sort一下。代码如下。但是运行结果就是"0<0<0"
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int>a(4);//
for(int i=0;i<3;i++){
int b;
cin>>b;
a.push_back(b);//
}
sort(a.begin(),a.end());
for(int i=0;i<3;i++){
cout<<a[i];
if(i!=2)cout<<'<';
}
return 0;
}
查了一下gpt确实是有问题:在初始化 vector<int> a(4);
时,会创建一个包含4个元素的 vector
,但在后续的循环中又通过 push_back
方法往 vector
中添加元素,导致实际存储的元素个数为7。这可能会导致输出结果不符合预期,因为排序和输出时会考虑所有7个元素。
修改:
1.把sort的a.end()改为a.begin()+3;
2.不用push_back(),用a[i]读入,并将定义改为vector<int> a(3);