| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:求高手帮查一下为什么不能运行!!!!!!!!!!!!!!!!!!
只看楼主 加入收藏
环及
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:21
专家分:25
注 册:2012-3-19
结帖率:83.33%
收藏
已结贴  问题点数:2 回复次数:6 
求高手帮查一下为什么不能运行!!!!!!!!!!!!!!!!!!
#include<iostream>
using namespace std;
void fun(char *a,long *b,int n){
   
    int j=0,d1=-3,d2=0;
    for(int i=0;i<n;i++)
    {    if(a[i]<='9'&&a[i]>='0')
        {if(d1=-3)
            d1=d2=i;
        else d2++;
        }
        if(d1!=-3)
        {do{b[j]+=(a[d2]-'0')*10;
            d2--;
            }while(d1>d2);
        b[j]/=10;
        j++;
        d1=-3;
        }
    }
    int t=0;
    while(t<j-1)
        cout<<b[t]<<' ';
}
void main()
{char ch[120];
int n=0;
long str[120];
cout<<"please input a string!"<<endl;
cin>>ch;
while(ch[n]!=0)
n++;
fun(ch,str,n);//调用fun函数把ch数组的数字保存在str数组例如ch=“yuewr55kiijkjh4551po124”
                //则str【120】={55,4551,124}

}
搜索更多相关主题的帖子: include 
2012-03-24 11:08
键佳蕾
Rank: 1
等 级:新手上路
帖 子:5
专家分:6
注 册:2012-3-24
收藏
得分:0 
输入字符串是不是得用偱环,ch是数组首是址
2012-03-24 12:43
Wikyo_hoho
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:188
注 册:2012-3-12
收藏
得分:0 
do{
    b[j]+=(a[d2]-'0')*10;
    d2--;
    }while(d1>d2);
死循环!
但不知道你这函数的想法是什么?
2012-03-24 15:37
环及
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:21
专家分:25
注 册:2012-3-19
收藏
得分:0 
回复 3楼 Wikyo_hoho
这不是死循环吧!if(d1<d2)才是吧!
我的想法是想把连续的数字放在一个数组元素中!如hhjj45jii则b【0】=45;第一次b【j】+=4*10;第二次b[j]=(4*10+5)*10;
退出循环时b[j]=(4*10+5)*10/10;
2012-03-24 17:11
Wikyo_hoho
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:188
注 册:2012-3-12
收藏
得分:2 
程序代码:
void fun(char *a,long *b,int n)
{  
    int j=0,key=0;
    for(int i=0;i<n;i++)
    {   
        for(;a[i]<='9'&&a[i]>='0';i++,b[j]*=10)    //    若是数字则开始循环读取,这里i可以继续加,等读完后记得再减1
        {
            b[j]+=a[i]-'0';
            key=1;       
        }
        if(key)    //判断是否是刚读完数字
        {
            b[j]/=10;
            j++;
            i--;
            key=0;
        }
    }
    i=0;
    for(;i<j;i++)
        cout<<b[i]<<' ';
}
void main()
{char ch[120];
int n=0;
long str[120]={0};        //注意long的初始化
cout<<"please input a string!"<<endl;
    cin>>ch;
while(ch[n]!='\0')        //其实也可以用strlen函数更简洁
    n++;
fun(ch,str,n);//调用fun函数把ch数组的数字保存在str数组例如ch=“yuewr55kiijkjh4551po124”
                //则str【120】={55,4551,124}

} 

我按照你的想法写的
你写的fun函数里
if(d1=-3)是什么意思,是你写错了吧,应该是d1==-3,不然else就没用了。
还有那个就是死循环,碰到数字后,d1=d2,而循环里是d2--,那么d1>d2会一直成立。
还有你的输出,   
       while(t<j-1)
        cout<<b[t]<<' ';
这就很明显是死循环了吧    - -!
你可以自己去调试下看看,大概就能明白哪错了
2012-03-24 20:28
环及
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:21
专家分:25
注 册:2012-3-19
收藏
得分:0 
回复 5楼 Wikyo_hoho
谢谢啦
我现在明白啦
2012-03-25 08:29
yubiaohyb
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2012-3-28
收藏
得分:0 
楼主 啊   请注意你的编程风格啊
2012-03-29 00:04
快速回复:求高手帮查一下为什么不能运行!!!!!!!!!!!!!!!!!!
数据加载中...
 
   



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

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