Uva120--strok()和sscanf()的运用
来源:互联网 发布:qq forpad网络链接错误 编辑:程序博客网 时间:2024/04/28 12:14
这题就是折腾排序,但是此题的输入有需要注意的地方。
一定要用好strtok()和sscanf()这两个不怎么常见的函数,灵活使用。
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=98&problem=56&mosmsg=Submission+received+with+ID+12260032
代码:
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>#define rep(n) for(int repp = 0; repp < (n); ++repp)using namespace std;static char str[100];static int num[50];static int nums[50];void fun(int a,int b){int i,j;int use[50];for(i=b,j=0;i>=a;i--,j++)use[j]=num[i];for(i=a;i<=b;i++)num[i]=use[i];return;}int main(void){while(gets(str)!=NULL){printf("%s\n",str);int t=0,judge=0;char *p;p=strtok(str," ");sscanf(p,"%d",&num[t++]);while(p){p=strtok(NULL," ");if(p)sscanf(p,"%d",&num[t++]);}int i,j;for(i=0;i<t;i++)nums[i]=num[i];sort(nums,nums+t);int k=t-1;for(j=t-1;j>=0;j--){for(i=0;i<t;i++){if(nums[j]==num[i]){if(i==0 && j!=0){if(judge==1){putchar(' ');}printf("%d",t-k);judge=1;fun(0,k);k--;break;}else if(i==k){k--;break;}else{if(judge==1){putchar(' ');}printf("%d",t-i);fun(0,i);judge=1;i=-1;continue;}}}}if(judge==1){putchar(' ');} printf("0\n");}return 0;}
- Uva120--strok()和sscanf()的运用
- strok函数的使用
- sscanf用法以及正则表达式的运用
- sscanf用法以及正则表达式的运用
- sscanf用法以及正则表达式的运用
- sscanf用法以及正则表达式的运用
- sscanf函数中正则表达式的运用
- sscanf函数中正则表达式的运用
- sscanf用法以及正则表达式的运用
- sscanf函数中正则表达式的运用
- UVA120
- UVa120
- uva120
- UVA120
- sscanf用法以及正则表达式的运用
- sscanf()的用法和例子
- sscanf和sstream的使用
- sscanf()的用法和例子
- 机房收费系统之条件的查询
- [hoj 1489]ATDS[凸包][旋转卡壳]
- hibernate日常笔记
- 判断webview加载完毕
- 非递归遍历文件
- Uva120--strok()和sscanf()的运用
- CvMoments初始化
- 线程池ThreadPoolExecutor使用简介
- Collections 和Collection的区别
- 51. 替换设计和刷新设计——Lotus Notes的程序部署和更新之实践
- java连接c3po数据库连接池
- 基于S3C2440的busybox的移植 yaffs根文件系统制作 .
- 文本绘制
- Mplayer的移植 .