| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1166 人关注过本帖
标题:函数的递归调用!!(求解)
只看楼主 加入收藏
lihuanxian
Rank: 1
来 自:广西钦州
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-13
收藏
 问题点数:0 回复次数:14 
函数的递归调用!!(求解)
编写一个密码登录的小程序,要求密码为8~16位,如果密码位数不对和密码不正确的时候,让用户重新输入,密码正确出现欢迎语句。
(提示:使用函数的递归调用)
搜索更多相关主题的帖子: 密码 用户 
2011-11-17 15:26
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
用递归就不怕栈溢出么,程序长时间运作的话

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-11-17 17:22
lihuanxian
Rank: 1
来 自:广西钦州
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-13
收藏
得分:0 
回复 2楼 tisyang
我也不知道啊,老师就这么要求的……那能不能编写出来啊
2011-11-17 22:04
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
你自己写哦

                                         
===========深入<----------------->浅出============
2011-11-18 13:47
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
肯定可以写出来,当然,和楼上所述,要你自己写出来。写不出来不准吃饭。嘿嘿。

我们都在路上。。。。。
2011-11-18 14:07
lihuanxian
Rank: 1
来 自:广西钦州
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-13
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
 main()
{
    char mm(char x,char y);
    char a[20],b[20]={"abcd1234"};
    printf("请输入密码:");
    gets(a);
    while(1)
    {
        if(mm(a[20],b[20])==1)
        printf("登陆成功!\n");break;
        if(mm(a[20],b[20])==0)
        printf("密码错误!\n");
   
    }
}
char mm(char x,char y)
{
    int c;
    if(strcmp(x,y)==0)
    c=1;
    else
    c=0;
    return(c);
}
没有提示错误信息,但运行时出错!帮忙看一下问题出在哪……
2011-11-19 18:14
runningfly
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-10-19
收藏
得分:0 
我也是新手,感觉递归好难呐!
2011-12-02 09:29
lichen7473
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2011-10-19
收藏
得分:0 
看了下你的程序,我修改了下  没问题了
#include "stdio.h"
#include "string.h"
int mm(char *x,char *y);      //声明不应该在  main()里面    参数也错了  应为 char *
main()
{
   
    char a[20],b[20]={"abcd1234"};

    while(1)
    {   
        printf("请输入密码:");
        gets(a);                 //gets()   应该在循环里面   不然实现不了重复输入
        if(mm(a,b)==1)
        {printf("登陆成功!\n");break;}  //不用{}的话  无论密码是否正确都停止
        if(mm(a,b)==0)
        printf("密码错误!\n");
   
    }
}
int mm(char *x,char *y)
{
    int c;
    if(strcmp(x,y)==0)
    c=1;
    else
    c=0;
    return(c);
}

个人观点,因水平有限,出错不要鄙视,欢迎指点!
2011-12-02 11:40
lichen7473
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2011-10-19
收藏
得分:0 
网速不行,发重复了。。。

[ 本帖最后由 lichen7473 于 2011-12-2 11:44 编辑 ]

个人观点,因水平有限,出错不要鄙视,欢迎指点!
2011-12-02 11:41
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
稍微修改一下上面的程序
程序代码:
#include "stdio.h"
#include "string.h"
int mm(char *x,char *y);      //声明不应该在  main()里面    参数也错了  应为 char *
main()
{
   
    char a[20],b[20]={"abcd1234"};

    while(1)
    {   
        printf("请输入密码:");
        gets(a);                
        if(mm(a,b))
        {
           printf("登陆成功!\n");break;
        } 
        else
           printf("密码错误!\n");
  
    }
}
int mm(char *x,char *y)
{
    int c;
    if(strcmp(x,y)==0)
    return 1;
    else
    return 0;
}

2011-12-02 12:09
快速回复:函数的递归调用!!(求解)
数据加载中...
 
   



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

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