请高手帮我研究下这个程序,谢谢!
写个程序判断是否能被3和5整除:#include "stdio.h"
void main()
{int n;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0)
printf("可以被3和5整除");
else
printf("不可以被3和5整除");
}
如果改成:
#include "stdio.h"
void main()
{int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0) z=1;
else(z=0);
if(z=1)
printf("可以被3和5整除");
if(z=0)
printf("不可以被3和5整除");
}
为什么输入任何数都输出"可以被3和5整除"
请高手们指教下谢谢!
----------------解决方案--------------------------------------------------------
回复1楼
#include "stdio.h"void main()
{int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0) z=1;
else(z=0);
if(z=1)
printf("可以被3和5整除");
if(z=0)
printf("不可以被3和5整除");
}
可以写成
#include "stdio.h"
void main()
{
int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0)
{
z=1;
}
else(z=0);
if(z=1)
{
printf("可以被3和5整除");
}
if(z=0)
{
printf("不可以被3和5整除");
}
}
这样语句块看的比较清楚,呵呵!
第一个if,如果被3或5整除就把z的值该为1,else语句被“;”号结束掉了,所以跟没写一样
在这之后,即便你输入的值能被3和5整除但你语句块里执行的操作是将z的值改为1
第二个if,如果z=1就输出可以被3和5整除
第三个if,这个语句块则永远都不会被执行到。
所以不管你输入的值能被3和5整除,他也都只输出“能被3和5整除”
基本上是这样,不知道还有没有高手可以看出别的问题!
----------------解决方案--------------------------------------------------------
哥哥,改成你这样也是同样的问题啊,真搞不明白了,那位大哥帮看看啊.
----------------解决方案--------------------------------------------------------
可以写成
#include "stdio.h"
void main()
{
int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0)
{
printf("可以被3和5整除");
}
else
{
printf("不可以被3和5整除");
}
}
这样不就行了吗?
真不知道你非要弄出个z来干什么!
----------------解决方案--------------------------------------------------------
如果你要再加上z的条件判断,那你输入的值就只能是 1 或 0
----------------解决方案--------------------------------------------------------
这样改一下就行了,仔细看一下,主要在条件判断.
#include "stdio.h"void main()
{int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0)
z=1;
else
(z=0);
if(z==1)
printf("可以被3和5整除");
if(z==0)
printf("不可以被3和5整除");
}
----------------解决方案--------------------------------------------------------
谢谢楼上的大哥,但小第还一个问题,我把程序改了下
#include "stdio.h"
void main()
{int n,z;
printf("请输入一个数 N :");
scanf("%d",&n);
if(n%5==0&&n%3==0)
z=1;
else
if(n%5==0!=n%3==0) <<增加了这段判断代码,程序就不灵了啊>>
z=0;
if(z)
printf("可以被3和5整除");
else
printf("不可以被3和5整除");
}
谢谢请再帮我分析下.
----------------解决方案--------------------------------------------------------
"xianshizhe111" 那样写就不会那样啦
注以后两个IF条件语句else(z=0);
if(z=1)
printf("可以被3和5整除");
if(z=0)
printf("不可以被3和5整除");
}
注意:是==(等于)而不是=(赋值),C语言不同于数学(=与==的区别).
----------------解决方案--------------------------------------------------------
你想一想如:输入7
这一条:if(n%5==0!=n%3==0)
它的结果如不成立.
z的值将是一个系统的随机数.它既不是0 也不是 1.
你想正确.
if(z==1)
不能
if(z)
ok
----------------解决方案--------------------------------------------------------
谢谢大哥,我明白啦.
----------------解决方案--------------------------------------------------------