----------------解决方案--------------------------------------------------------
在这个程序中,不能用&&,而应该用||.
因为如果你输入3,那么它是不能被5整除的.所以不成立.
如故你输入5,也不能被3整除,也不成立,所以都显示出不能被3与5整除!
而当你输入15时,能被3和5整除,所以就显示这个数能被3和5整除!
我是这样写的:
main()
{
int n,z;
printf("请输入一个整数:");
scanf("%d",&n);
if(n%3==0||n%5==0)
z=1;
else z=0;
if(z==1)
printf("这个数可以被3和5整除!");
else
printf("这个数不可以被3和5整除!");
}
----------------解决方案--------------------------------------------------------
printf("请输入一个整数:");
int n = 0 ;
char c, cf ;
while( ( ( c = getchar( ) ) != ' \n ' ) ? ( n += c - ' 0 ' , cf = c ) : ( 0 ) ) ;
if ( n%3 == 0 && ( n != 0 && ( cf == ' 5 ' || cf == ' 0 ' ) ) )
printf( " OK !!! \n" ) ;
else
printf( " NO OK !!! \n" ) ;
这是我的方法```考虑得还不周全``但是大概提供了一个思路``
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]shuyinzhen[/underline][/bold] 于 2007-12-29 10:54 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1164410&ptid=194943][/url]
#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) //这里应该是if(z==1)吧
printf("可以被3和5整除");
if(z=0) //这里应该是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) //这里应该是if(z==1)吧
printf("可以被3和5整除");
if(z=0) //这里应该是if(z==0)吧
printf("不可以被3和5整除");
}
可以写成 ...
该过来应该是对的吧~~~~~~~~~~~~~
----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>
int main()
{
int n,z;
printf("\n请输入一个整数:");
scanf("%d",&n);
if(n % 15 == 0) //15为3和5的最小公倍数
z=1;
else
z=0;
if(z==1)
printf("%d可以被3和5整除!\n",n);
else
printf("%d不可以被3和5整除!\n",n);
return 0;
}
int main()
{
int n,z;
printf("\n请输入一个整数:");
scanf("%d",&n);
if(n % 15 == 0) //15为3和5的最小公倍数
z=1;
else
z=0;
if(z==1)
printf("%d可以被3和5整除!\n",n);
else
printf("%d不可以被3和5整除!\n",n);
return 0;
}
----------------解决方案--------------------------------------------------------
12楼的意思很明确,但却不是LZ的题目了..LZ需要的就是同时能被3和5整除.并不是3或5整除.
支持15楼的答案. 另外不记得是几楼去了..好象是版主...他的代码。.我看不懂...
----------------解决方案--------------------------------------------------------
我的代码在13楼`````
我的要好处理些``````我们都知道``如果一个数能被3整除```那么它的各位相加最后得到的结果`
肯定还是被3整除``
如果一个数能被5整除```那么它的个位不是0就是5```
那就是我的思路````
LZ的程序能处理的数``位数有限```就算是换成long也不是很大````
但是看我的能``我把n定义为int``假设int的范围是``-32768 -- 32767```
那么能处理的最大的数的多少呢`````粗率估计一下```
最小的情况```就算每位是9``
符号不算进去```那么就是 32767 / 9 == 3641 位也就说最小可以处理输入为3641位的数``
最大(相对而言)````每位是1就可以处理```32767位```
也就说范围是 3641 -- 32767 位 ```而且不精确``
要知道有些数再大``它各位相加也才可能是1``比如``1的后面加上1亿个0``够大吧```一亿01位的数哦``但是结果相加后还是1```
5就更不用说了`````随便你的数好大```我只需要其个位```然后检查该数是不是>=5``
要是int是32位的长度```````那么.......
----------------解决方案--------------------------------------------------------
把我的代码``和15楼的代码综合一下吧````15比我聪明啊```
----------------解决方案--------------------------------------------------------
斑竹的代码,比较独特而且有创义,好,很好.
----------------解决方案--------------------------------------------------------