注册 登录
编程论坛 C++教室

求高手解答~~其实是初级小问题。。。

childish 发布于 2011-04-06 16:14, 609 次点击
#include<iostream>
using namespace std;
void P()
{
    char ch;
    cin>>ch;
    if(ch!='.')
    cout<<ch;
    P();
}
void main()
{   
    cout<<"输入一个字符串:"<<endl;
    P();
    cout<<endl;
}
这个为什么不能这样编呢、
void P()
{
    char ch;
    if(ch!='.')
    cout<<ch;
    P();
}
void main()
{   
    char ch;
    cout<<"输入一个字符串:"<<endl;
    cin>>ch;
    P();
    cout<<endl;
}
6 回复
#2
jery24872011-04-06 18:42
函数P需要参数,要想递归,还得重新给字符变量赋值
#3
ljt2011-04-06 19:33
这两个ch不是一样的,作用范围不一样,你可以用参数传进去
#4
baby俊2011-04-07 20:28
自己定义的函数跟主函数里面的变量是不一样的,ch不同
#5
xiaoji7562011-04-08 14:25
要递归也要个结束条件呀   你还是没想递归呀
#6
ma122302011-04-08 15:15
void P()
{
    char ch;//和main中的ch不是一个变量,并且没有建立连接关系。而且也没有赋值。
将在这个函数里面死循环。
    if(ch!='.')
    cout<<ch;
    P();
}
void main()
{   
    char ch;
    cout<<"输入一个字符串:"<<endl;
    cin>>ch;/////////////////////////////只调用了一次,而且是main的临时变量,不能传递到p函数中
    P();
    cout<<endl;
}
#7
紫凤双飞2011-04-09 20:59
你上面那个程序也无法退出递归吧
1