2 xyhqqlove xyhqqlove 于 2016.01.24 21:58 提问

请帮忙看下这个程序吧,想了半天了

#include

int leng(char*s)
{
if(s)
return leng(s+1)+1;
return 0;
}

void main()
{
char s[100];
scanf("%s", &s);
int l=leng(s);
printf("%d",l);
}

11个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.01.24 22:20
已采纳
 #include <stdio.h>
int leng(char*s)
{
    int n=0;
    if(*s)
        return n=leng(s+1)+1;

    return n;
}
void main()
{
    char s[100];
    scanf("%s", s);//修改,字符数组名s代表了数组起始地址
    int l=leng(s);
    printf("%d",l);
}
xyhqqlove
xyhqqlove 谢谢,只有你是对的。
接近 2 年之前 回复
shidizai1993
shidizai1993   2016.01.24 22:03

输入一个字符串,输出它的长度

javawenweng
javawenweng 骗分的吧
接近 2 年之前 回复
javawenweng
javawenweng   2016.01.24 22:06

头文件缺少了。

ouchao0727
ouchao0727   2016.01.24 22:15

判断输入的字符串长度,完全不用c库的方式

tangquanawj
tangquanawj   2016.01.24 22:20

#include
int leng(char*s)
{
if(s)
return leng(s+1)+1;
return 0;
}
void main()
{
char s[100];
scanf("%s", &s);
int l=leng(s);
printf("%d",l);
}

91program
91program   Ds   Rxr 2016.01.24 22:23

还是一个比较“高深”的递归算法,个人认为还是使用系统的、或者 for 循环来的比较简单的。
当然,如果你是再学习递归算法别当别论。如果是,建议你增加 printf 来分析中间过程。

 int leng(char*s)
{
    // 在这里增加 printf 输出你想看到的
if(s)
return leng(s+1)+1;
return 0;
}
wjwever1
wjwever1   2016.01.24 22:22

#include
int leng(char*s)
{
if (*s)
return leng(++s) + 1;
return 0;
}
void main()
{
char s[100];
scanf_s("%s", &s);
int l = leng(s);
printf("%d", l);
}

wjwever1
wjwever1   2016.01.24 22:22

#include
int leng(char*s)
{
if (*s)
return leng(++s) + 1;
return 0;
}
void main()
{
char s[100];
scanf_s("%s", &s);
int l = leng(s);
printf("%d", l);
}

wjwever1
wjwever1   2016.01.24 22:22

#include
int leng(char*s)
{
if (*s)
return leng(++s) + 1;
return 0;
}
void main()
{
char s[100];
scanf_s("%s", &s);
int l = leng(s);
printf("%d", l);
}

wjwever1
wjwever1   2016.01.24 22:22

#include
int leng(char*s)
{
if (*s)
return leng(++s) + 1;
return 0;
}
void main()
{
char s[100];
scanf_s("%s", &s);
int l = leng(s);
printf("%d", l);
}

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!