首页 > 代码库 > 我是弱鸡,我是弱鸡。。。求助求助
我是弱鸡,我是弱鸡。。。求助求助
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
#include<iostream> #include<cstring> using namespace std; int main() { char a[1000][1000],b[1000]; int i=0,j=0,k=0,s,q,w,e=0,r=0,t; int c[1000]; while(cin>>b) { while(b[k]!=‘\0‘) { if(b[k]!=‘5‘){a[i][j]=b[k];j++;k++;} else {a[i][j]=‘\0‘;if(j!=0)i++;j=0;k++;} } a[i][j]=‘\0‘; if(j!=0)i++; for(q=0;q<i;q++) { strcpy(b,a[q]); s=strlen(b); for(w=0;w<s-1;w++) { if(b[w]==‘0‘)e++; else break; } for(w=e;w<s;w++) { a[q][r]=b[w];r++; } a[q][r]=‘\0‘; e=0;r=0; } for(q=0;q<i;q++) { c[q]=strlen(a[q]); } for(q=0;q<i;q++) { for(w=0;w<i;w++) { if(c[q]<c[w]){t=c[q];c[q]=c[w];c[w]=t;strcpy(b,a[q]);strcpy(a[q],a[w]);strcpy(a[w],b);} if(c[q]==c[w]&&strcmp(a[q],a[w])<0){t=c[q];c[q]=c[w];c[w]=t;strcpy(b,a[q]);strcpy(a[q],a[w]);strcpy(a[w],b);} } } for(q=0;q<i-1;q++) { cout<<a[q]<<" "; } cout<<a[q]; cout<<endl; i=0;j=0;k=0; } return 0; }
我是弱鸡,我是弱鸡。。。求助求助
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。