| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:有逻辑错误?
取消只看楼主 加入收藏
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
结帖率:100%
收藏
 问题点数:0 回复次数:3 
有逻辑错误?
[
程序代码:
#include<iostream>
using namespace std;
#include<string> 
#include<cmath>
int savenum(char *,int &);
int main()
{   const int n=10;
        int num[n],num_found=0,k=0;/*num[n]用来储存找到的数字,num_foud用来记找到的数字的个数,k的功能见while循环*/
    char arry[20];
    cout<<"please input the arry";
    cin>>arry;
    char *p=&arry[0];
    while(*p!='\0')
    {
        if(‘0’<=*p<=‘9’ )
        {
        p=p+savenum(p,num[k]);//此语句目的是将p下移连续数字的位数个单位
        k++;//k在找到数字后加1,让num数组准备接收下一个找到的数字
        num_found++;
        }
        else p=p+1;//如果没找到数字,就让p下移一位,进而判断下一位是否是数字
    }
    for(int i=0;i<num_found;i++)
    cout<<num[i]<<" ";
    return 0;
}
int savenum(char *p,int &num)
{

 num=0;

 int k=0,move_p=0;

 while(‘0’<=*p<=‘9’)

 {
     num=num+(*p-48)*pow(10,k);//更改num[k]的值(这里想让(*p-48)乘以10的k次方)
       k++;//k随着p的移动增大
        move_p++;//每找到一个单个数字,主函数中的指针p应该下移一位
        p++;

 }

 return move_p;
}

习题要求:输入一个字符串,内有数字和非数字字符,如:
a123x456 179?320
将其中连续的数字作为一个整数,依次存放到一数组num中。例如123放在num[0]中,456放在num[1],运行后出现无法正常执行的错误,求各位指教!

[ 本帖最后由 a874695162 于 2014-10-24 21:21 编辑 ]
2014-10-24 20:22
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
收藏
得分:0 
回复 2 楼 stop1204
p不是指向字符串,而是字符串的首元素

加油,再加油!编程,再编程!
2014-10-25 08:40
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
收藏
得分:0 
回复 4 楼 stop1204
请问,什么情况下会出现死循环呢?

加油,再加油!编程,再编程!
2014-10-26 12:33
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
收藏
得分:0 
回复 8 楼 哆啦安梦
知道了,谢谢!

加油,再加油!编程,再编程!
2014-10-28 08:25
快速回复:有逻辑错误?
数据加载中...
 
   



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

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