但是我有一个问题是,返回值就一个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];
}追问
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'");
}追问
#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可以与之对应,当然可以!