以EOF结束输入 PTA 7-12 排序(数组)
7-12 排序(数组) (5分)
输入若干整数到一个数组中,把它从小到大排序后输出。
输入格式:
输入若干整数,用EOF结束。
输出格式:
排序后的数组
数与数间用一个空格隔开。
输入样例:
3 5 7 7 2 1 6
输出样例:
1 2 3 5 6 7 7
思路:
唯一的难点就是怎么以EOF结束了
while(cin>>x>>y){}
while(scanf("%d %d",&x,&y)){}
但是对于这个题,如果输入一个数,以上两种方法肯定会出错 对于这个题来说,要用下边这个
while(scanf("%d",&x)=EOF){}
还是因为刚学的快排,接着用快排解~
代码:
#include <bits/stdc++.h>
using namespace std;
int a[1000];
void quickSort(int left ,int right){
int x=left,y=right;
int z=a[left];
if(x>y)return;
while (x!=y)
{
while(a[y]>=z && x<y)
y--;
while(a[x]<=z && x<y)
x++;
if(x<y)
{
swap(a[x],a[y]);
}
}
swap(a[x],a[left]);
quickSort(left,x-1);
quickSort(x+1,right);
return;
}
int main()
{
int x=0,y,z;
while(scanf("%d",&y)!=EOF)
{
a[x]=y;
x++;
}
int left = 0,right = x-1;
quickSort(left,right);
for (int i = 0; i < x; ++i) {
cout<<a[i]<<" ";
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效