C语言:判断一个数是否能同时被3和5整除
这个题目其实很简单,我昨天在同学那里看到这个程序是这样写的,我有点看不懂:程序的内容如下:#include<stdio.h>voidmain(){intn;while((...
这个题目其实很简单,我昨天在同学那里看到这个程序是这样写的,我有点看不懂:程序的内容如下:
#include<stdio.h>
void main()
{
int n;
while((scanf("%d",&n)==1)
{
if(n%3==0&&n%5==0)
printf("Yes:%d\n",n);
else
printf("NO:%d\n",n);
return 0;
}
}
我想问的是:
按照常规的理解,while()括号里的scanf("%d",&a)==1;的意思是:当输入的数恰好为1的时候则执行下面的语句,例如,当输入的数是15时,15此时不恰好等于1,整个表达式的值为假,难道不是应该退出循环吗?可是为什么运行的时候能够通过,
还有最后那个return 0;是什么意思;请大虾指教,在下感激不尽; 展开
#include<stdio.h>
void main()
{
int n;
while((scanf("%d",&n)==1)
{
if(n%3==0&&n%5==0)
printf("Yes:%d\n",n);
else
printf("NO:%d\n",n);
return 0;
}
}
我想问的是:
按照常规的理解,while()括号里的scanf("%d",&a)==1;的意思是:当输入的数恰好为1的时候则执行下面的语句,例如,当输入的数是15时,15此时不恰好等于1,整个表达式的值为假,难道不是应该退出循环吗?可是为什么运行的时候能够通过,
还有最后那个return 0;是什么意思;请大虾指教,在下感激不尽; 展开
展开全部
先说scanf(),这是一个库函数,它有它的返回值,祥情参阅http://baike.baidu.com/view/1390039.htm?fr=ala0_1_1
所以,你的scanf("%d", &a)它返回了int类型的1,说明成功读入了一个数。如果你读如了两个数,如scanf("%d%d", &a, &b),那么它返回的将是int类型的2。。。
所以while()表达式的真假为真。
对于return 0;也没有哪本书上有过对它的描述给我留下了深刻的记忆,只记得有说它是返回给操作系统,表示程序的正常结束。如果你再baidu一下的话,你会发现一些,如:
这是一个好的习惯;
要不要无所谓;
对于有的编译器是必须的;
等。。。
所以建议还是留着它吧,当然,对于main()的返回也要作相应的修改:int main(){...}
所以,你的scanf("%d", &a)它返回了int类型的1,说明成功读入了一个数。如果你读如了两个数,如scanf("%d%d", &a, &b),那么它返回的将是int类型的2。。。
所以while()表达式的真假为真。
对于return 0;也没有哪本书上有过对它的描述给我留下了深刻的记忆,只记得有说它是返回给操作系统,表示程序的正常结束。如果你再baidu一下的话,你会发现一些,如:
这是一个好的习惯;
要不要无所谓;
对于有的编译器是必须的;
等。。。
所以建议还是留着它吧,当然,对于main()的返回也要作相应的修改:int main(){...}
展开全部
不是你那样理解的,scanf("%d",&a)这里是调用的scanf函数,这个你要看scanf的反回值是多少,在C中定义的scanf反回的值是1,而不是在使用变量a的值去与1进行比较,因此不管你是怎样调用scanf,只要scanf执行成功都会反回1,这就是为什么你的scanf("%d",&a)==1;总为真的原因.
return 语句一般是用在函数中的,主要是用于反回一个值,而return就表过这个函数反回值为0,而你这个程序中只有一个反回类型为void(表示没有反回值)的main函数,因此在这里使用return 0;反回一个整数值0,是错误的。
return 语句一般是用在函数中的,主要是用于反回一个值,而return就表过这个函数反回值为0,而你这个程序中只有一个反回类型为void(表示没有反回值)的main函数,因此在这里使用return 0;反回一个整数值0,是错误的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%d",&a)==1;
的意思是 只要不是0就可以 0以外都是真
void main()其实这个是一个没有返回值的函数
return 0 可有可无。
return 常用于子函数当中 用来得到子函数的运算结果如 int loop()表示返回值为整数
b=loop()
loop
{
int a
a++
return a
}
b就等于loop的返回值a 具体格式对不对我不保证哈,我好久没用了,但肯定是这个意思
的意思是 只要不是0就可以 0以外都是真
void main()其实这个是一个没有返回值的函数
return 0 可有可无。
return 常用于子函数当中 用来得到子函数的运算结果如 int loop()表示返回值为整数
b=loop()
loop
{
int a
a++
return a
}
b就等于loop的返回值a 具体格式对不对我不保证哈,我好久没用了,但肯定是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unix/linux中,约定俗成一个程序返回0代表成功,-1代表失败。
主要用于script中作判断。
主要用于script中作判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询