PAT A1005
注意看数字范围,还有就是是非负数(len1需要单独处理),以及空格的处理
刚开始把nine打错了 找了半天
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; void shuchu(int n) { if(n==1) printf("one"); else if(n==2) printf("two"); else if(n==3) printf("three"); else if(n==4) printf("four"); else if(n==5) printf("five"); else if(n==6) printf("six"); else if(n==7) printf("seven"); else if(n==8) printf("eight"); else if(n==9) printf("nine"); else printf("zero"); } int main() { char num[10000]; scanf("%s",&num); int count=1; int n=0; for(int i=0;i<strlen(num);i++) { n+=num[i]-'0'; } while(count<n) count=count*10; count=count/10; if(n<10) shuchu(n); else { while(count>1) { shuchu(n/count); printf(" "); n=n%count; count=count/10; } shuchu(n); } return 0; }
PAT A1077
注意带空格的要单独读取(并且这么读取以后使用%s可能会出现问题)
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; int main() { int n; char str[105][300]; int strl[105]; scanf("%d",&n); getchar(); for(int i=0;i<n;i++) { int j=0; while(scanf("%c",&str[i][j]) && str[i][j]!=' ') j++; //printf("this:%c ",str[i][j]); str[i][j]='