写了一个C语言函数判断一个字符数组J[]内容是否全为字符‘0’。

但是我有一个问题是,返回值就一个return 0是不是合理,或者是不是有错误?
int Judge(char *J)
{
int i;
for(i=0;i<strlen(J);i++)
{
if(J[i]=='1')
break;
}
return 0;
}

首先你的程序不合理,,如下改
char Judge(char *J) //设返回的值为字符,所以用char
{
int i;
for(i=0;i<strlen(J);i++)
{
if(J[i]!='0') //你要判断的是否全为'0',只要有一个不为'0',结论就不成立
break;
}
return J[i];
}追问

谢谢!感觉这样写很好,只是最佳答案让我找到了问题所在,不然最佳就给你了~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-29
恩,应该有点问题,返回值应该有两个选择,全为‘0’,返回一个值;不全为‘0’,返回一个值。例如:
#include<stdio.h>
#include <string.h>
int Judge(char *J)
{
int i;
for(i=0;i<strlen(J);i++)
{
if(J[i]!='0')
return 1;
}
return 0;
}

void main()
{
char J[6] = "00000";
int a = Judge(J);
if (a == 1)
{
printf("%s\n","不全为'0'!");
}
else
printf("%s\n","全为'0'");

}追问

谢谢你,这样是正确的,选你!我看是也是这么写的,只是感觉当执行完for语句后,还会执行return 0,所以就没敢这么写。后来我看了一下C语言的书,才知道函数碰到return就会停止。基础知识没打牢,见笑了。。。

本回答被提问者采纳
第2个回答  2012-03-29
你写的子函数int Judge(char *J),是int 类型,返回0可以与之对应,当然可以!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网