#include"stdio.h" #include"string.h" #include"io.h" #include"ctype.h" #include"stdlib.h" int main() { FILE *fp; char c[100]; int sum[30],num[50],i=0,l,s=0,N=1,g=0,j; int temp; fp=fopen("d:\\out2.txt","a+"); printf("请输入一含有数字的字符串:\n"); gets(c); l=(int)strlen(c); //printf("字符串长度为:%d\n",l); for(i=0;i<l;i++)//转换为数字 { if((c[i]>='0')&&(c[i]<='9')) { sum[s++]=c[i]-48;//单个字符数字转换为数字 N*=10; if(c[i+1]<='0'||c[i+1]>='9'||c[i+1]=='\0')//判断下一个字符是否为字符数字,不是则执行下一步,即是否是一个连续的数 { num[g]=0; N/=10; for( j=0;j<s+1;j++)//连起来的数字转为一个整数 { sum[j]*=N; N/=10; num[g]+=sum[j]; } g++;//记录字符串中数字串的个数 s=0;//用于sum[30]重新存储下个字符数字 N=1;//用于字符数字转为数字 } } } printf("整数个数有%d个\n",g); printf("为:\n"); for(i=0;i<g;i++)//输出结果 { printf("%d\t",num[i]);} printf("\n"); for(i=0;i<g;i++) { for(j=0;j<g-i;j++) { if(num[i]>num[j]) { temp=num[i]; num[i]=num[j]; num[j]=temp; } } } //for(i=0;i<g;i++)//输出结果 printf("最大数:%d\t",num[0]); fprintf(fp,"整数个数:%d",g); fputc('\n',fp); fprintf(fp,"最大整数:%d",num[0]); fclose(fp); getchar(); }