haiouda 发表于 2015-3-24 23:34:58

我咋这么笨,这个用了6小时555555

/************************************************************************
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一数组 a 中,例如,123 放在 a,
456 放到 a……统计共有多少个整数,并输出这些数。
**************************************************************************/



#if(1)
#include <stdio.h>
#include <math.h>

int main()
{
        int i=0,n=0,j=0,m=0,k,y;
        int in,temp=0,a={0};
        char *p,car;
        printf("请输入一个字符串:");
       
        gets(car);
        p=car;
               
        for (;;j=0)
        {
                if (*(p+i)=='\0')
                {
                        break;
                }
               
                for(;i<1000;i++)
                {                       
                        if(*(p+i)>=48 && *(p+i)<=57 && *(p+i+1)>=48 && *(p+i+1)<=57
                                || *(p+i)>=48 && *(p+i)<=57 && *(p+i-1)>=48 && *(p+i-1)<=57 )//二个以上连续数字
                        {
                                in=(*(p+i))-48;// 字符ASCII码转十进制
                                j++;//j 用于统计每个整数的长度
                               
                        }
                        if(!(48<=*(p+i) && *(p+i)<=57))   // 字符不属于0-9
                        {
                                i++;
                               
                                break;
                        }
                       
                }
               
                if(j>1)
                {

                        y=j;    //循环次数
                       
                        for(j=0,k=y-1;j<y;j++,k--)   //把几个数连起来,变成一个整数
                        {
                               
                                temp+=in * pow(10,k);
                        }
                       
                       
                        a=temp;
                        temp=0;
                        n++;
                       
                       
                }
        }
       
       
                                for(i=0;i<n;i++)
                                {

                                        printf("a[%d]=%d\n",i,a);
                                }
                                printf("\n");
                               
                               
                                return 0;
}




#endif

~风介~ 发表于 2015-3-24 23:53:00

凡事慢慢来,后来就会越来越快了——加油哦!{:5_92:}

haiouda 发表于 2015-3-25 09:13:59

~风介~ 发表于 2015-3-24 23:53
凡事慢慢来,后来就会越来越快了——加油哦!

谢谢 :cry

haiouda 发表于 2015-3-25 10:32:24

本帖最后由 haiouda 于 2015-3-25 14:23 编辑

<p>#include <stdio.h>
#include <math.h></p><p>int main()
{
int i=0,n=0,j,k;
int in,temp=0,a={0};
char *p,car;
printf("请输入一个字符串:");

gets(car);
p=car;

for (;;)
{ j=0;
if (*(p+i)=='\0')break;
   
for(;;i++)
{   
   if(*(p+i)>=48 && *(p+i)<=57 && *(p+i+1)>=48 && *(p+i+1)<=57
    || *(p+i)>=48 && *(p+i)<=57 && *(p+i-1)>=48 && *(p+i-1)<=57 )//二个以上连续数字
   {
    in=(*(p+i))-48;// 字符ASCII码转十进制
    j++;//j 用于统计每个整数的长度
   
   }
   else   /*字符不属于0-9 */
   {
    i++;   
    break;
   }   
}

if(j>1)
{
   k=0;
   for(--j;j>=0;j--)   //把几个数连起来,变成一个整数
   {
   
    temp+=in * pow(10,k++);
   }
   
   
   a=temp;
   temp=0;
   n++;
   
   
}
}

printf("共有%d个连续数字它们分别是:\n",n);
    for(i=0;i<n;i++)
    {
   
   printf("a[%d]=%d\n",i,a);
    } printf("\n");
   
   
    return 0;
}
精简

心驰神往 发表于 2020-11-4 13:22:57

{:10_277:}别急
页: [1]
查看完整版本: 我咋这么笨,这个用了6小时555555