标题:谭浩强版的C语言,10.16题,
只看楼主
lixianhui
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-30
结帖率:100%
已结贴  问题点数:20 回复次数:2 
谭浩强版的C语言,10.16题,
谭浩强版的C语言,10.16题,
  输入一个字符串,内有数字和非数字符,如 a123x456 将其中的连续的数字字符作为一个整数,一次存放到一个数组a中。例如 123存放在a[0]中,456存放在a[1]中,统计总过有多少个整数,并且输出这样的整数!
/*输入一个字符串,内有数字和非数字字符,把其中的数字字符组合在一起
  作为一个整数放在一个内存中*/
void sort(char *p,int n)
{
    int i,j=0,m=0,loox=0;
    int sumdex=0;
    int sum=0,s,f,c=1;
    int flag=0,numdex=0,numstop=0;
    int a[10];
loop:for (i=m;i<n;i++)
    {
        if ('0'<=*(p+i)&&*(p+i)<='9')
        {
            j++;
            
            if (*(p+i+1)>'9'||*(p+i+1)<'0')
            {
                flag=1;
                m=i+1;
                break;
            }
        }
    }
    if (flag==1)
    {

        for (s=m;j>0;j--)
        {
            for(f=0;f<j;f++)
            {
                c=c*10;
            }
            sum=sum+(*(p+s-j)-48)*c;
            sumdex++;
        }
        for (numdex=numstop;numdex<sumdex;numdex++)
        {
            a[numdex]=sum;
            numstop=numdex+1;
            printf("%d ",a[numdex]/10);
            sum=0;
            c=1;
        }
        flag=0;
        j=0;
        loox++;
        if (loox<n)
        {
            goto loop;
        }
    }

}
void main()
{
    char a[15];
    int i;
    printf("Please input the chars you wants:\n");
    gets(a);
    printf("The chars you input is :\n");
    printf("%s\n",a);
    sort(a,15);
}
这个是我自己想的程序,但是只能实现1 2 3 4 5 6 7 8 的情况,不知道为什么?请大家帮忙!
搜索更多相关主题的帖子: C语言 谭浩强 
2010-09-30 15:38
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
得分:20 
if (*(p+i+1)>'9'||*(p+i+1)<'0')
            {
                flag=1;
                m=i+1;
                break;
好像此处的break会终止循环,也就是当输入的数组一出现字母时,就停止检索后边的元素了,不知你的情况是不是这样的 比如输入123asd56789,则只显示123啊

粗心是大敌
2010-09-30 17:29
lixianhui
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-30
得分:0 
哦,谢谢了!我已经解决了!
2010-10-07 14:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321759-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.292367 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved