| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 761 人关注过本帖
标题:编了一个程序,没达到结果,求助!
只看楼主 加入收藏
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:15 
编了一个程序,没达到结果,求助!
输入一个字符串,内有数字和非数字字符,如a123x456 17960? 302tab5879将其中连续的数字作为一个整数,依次存放到 一数组中,统计共有多少个字符,并输出这些数!!
程序代码:
        #include <stdio.h>

        #define N 50

        int main (void)

        { int i,j=0,k=0,m=0,n=0,b=0,sum=0;

          int a[10];

          char str[N];

          char * p;

          gets(str);

          printf("\n");

          puts(str);

          p=str;

          for(i=0;i<N;i++)

            {   if(*(p+i)>='0'&&*(p+i)<='9')/*判断字符串中的字符是否是0到9之间的数*/

                {  a[j]=*(p+i);    /*是的话就赋给a数组*/

                   n=m++;     /*n用来存放这一次共有多少个数字*/

                   k=j++;      /*a[k]是用来存放数字的,每存放一个数字,j自加一次*/

                }

               for(j=0;j<=k;j++)

               {  for(m=n;m>0;m--)

                  a[j]=a[j]*10;

                  sum+=a[j];

                  b++;

               }

               if(!(*(p+i)>='0'&&*(p+i)<='9'))

               { m=0; n=0;j=0;k=0;  /*假如当前字符不是数字,就将m,n,j,k归零*/

                }

               printf("%3d,%3d",sum,b);

             }


          getch();

        }


   


 
搜索更多相关主题的帖子: 结果 
2010-09-27 22:51
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
自己写了个,程序运行没问题!大家看看,可能是思路不对!!请教大家!!

付出终将有回报!Ibelieve!
2010-09-27 22:53
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-27 23:40
佳嘉
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:534
专家分:1383
注 册:2009-11-8
收藏
得分:3 
for(i=0;i<N;i++)输入的字符可能没有N个
将字符数字存入数组的时候应该将它转化为数字  比如说  a[j]=*(p+i)-'0'
2010-09-27 23:46
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
以下是引用cacker在2010-9-27 23:40:33的发言:

可以把这个字符转换成整数 存到临时变量拉  

 
前面懂了,后面这句没懂!!

付出终将有回报!Ibelieve!
2010-09-27 23:49
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-27 23:50
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
你可以用一个函数就是每当字符是数字时用
这个函数大概是这样的
int fun(char a,int n)
{
 int s=0;
 s+=s*10+a[n];
 return s;
}

清风拂暮(木)
2010-09-27 23:51
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
收藏
得分:2 
数字是0而不是‘0’
2010-09-27 23:51
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 6楼 cacker
谢谢指点!!

付出终将有回报!Ibelieve!
2010-09-27 23:52
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 4楼 佳嘉
谢谢指点!!

付出终将有回报!Ibelieve!
2010-09-27 23:53
快速回复:编了一个程序,没达到结果,求助!
数据加载中...
 
   



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

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