事实证明还是,题目拿到手之后,还是还是好好动手划一下比较好,不然直接想打哪!打到哪!很容易乱掉的。将数字倒着弄成字符串比较好处理。
#include<stdio.h> #include<string.h> #define MAX 505 char str[MAX][200]; int ch1(char *a,char *b) { int l1,len,flag,coun=0,l2; int i=0,j=0; l1=strlen(a); l2=strlen(b); if(l1>l2) return 1; else if(l1<l2) return 0; else { for(i=l1-1;i>=0;i--) { if(a[i]>b[i]) return 1; else if(a[i]<b[i]) return 0; } return 1; } } int ch2(char *a,char *b) { int l1,len,flag,coun=0,l2; int i=0,j=0; l1=strlen(a); l2=strlen(b); if(l1>l2) return 1; else if(l1<l2) return 0; else { for(i=l1-1;i>=0;i--) { if(a[i]>b[i]) return 1; else if(a[i]<b[i]) return 0; } return 0; } } int cmp(char *str1,char *str2) { int i,coun=0,s=0; for(i=0;i<MAX;i++) { if(ch2(str[i],str2)) break; if(ch1(str[i],str1)) { coun++; } } return coun; } int main(void) { int i,j,len,h,flag,len1,l1,l2,k; char str1[100],str2[100],str3[100],str4[100]; str[0][0]='1';str[0][1]='