C语言如何设计 判断一个数能否被3和5整除?我的代码怎么改正呢?
#include<stdio.h>#include<conio.h>intmain(){floatn,a,b;printf("请输入一个数字");scanf("%d",&...
#include<stdio.h>
#include<conio.h>
int main()
{
float n,a,b;
printf("请输入一个数字");
scanf("%d",&n);
a=n/3-int(n/3);
b=n/5-int(n/5);
if(a==0 && b==0)
printf("能被3和5整除!");
else printf("不能被3和5整除!");
getch();
return 0;
}
为什么我输入15还是不能被3和5整除的呢?是优先级的原因吗? 展开
#include<conio.h>
int main()
{
float n,a,b;
printf("请输入一个数字");
scanf("%d",&n);
a=n/3-int(n/3);
b=n/5-int(n/5);
if(a==0 && b==0)
printf("能被3和5整除!");
else printf("不能被3和5整除!");
getch();
return 0;
}
为什么我输入15还是不能被3和5整除的呢?是优先级的原因吗? 展开
6个回答
展开全部
a=n/3-int(n/3);
如果输入15,档喊塌这个a是不会等于0的
因为float的15,其实是15.00000001 或者 14.999999
直接除以3和强转成int型 是行圆不相等的
其实你这个算法本身有问题,建议改算渗搏法
输入整数,用 取余的方法就ok了 系统帮你做好了很多事
int n;
scanf("%d",&n);
if(n%3 ==0 && n%5 ==0) {
//.....
}
如果输入15,档喊塌这个a是不会等于0的
因为float的15,其实是15.00000001 或者 14.999999
直接除以3和强转成int型 是行圆不相等的
其实你这个算法本身有问题,建议改算渗搏法
输入整数,用 取余的方法就ok了 系统帮你做好了很多事
int n;
scanf("%d",&n);
if(n%3 ==0 && n%5 ==0) {
//.....
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言中判断一个数能够被某数nn整除,可以用对nn求模运算的结果是否为0来判断,具体到这个地方,能够被3和5整除,就是同历氏时对3和5求旅烂裤模,且结果全为0就可以了,代码如拆简下:
#include<stdio.h>
main()
{
int a;
printf("请输入一个数字:");
scanf("%d",&a);
if((a%3==0)&&(a%5==0))printf("\n能被3和5整除!");
else printf("不能被3和5整除!");
getch();
}
#include<stdio.h>
main()
{
int a;
printf("请输入一个数字:");
scanf("%d",&a);
if((a%3==0)&&(a%5==0))printf("\n能被3和5整除!");
else printf("不能被3和5整除!");
getch();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有个余数符号的。。。
(number % 3 == 0) || (number % 5 == 0)
(number % 3 == 0) || (number % 5 == 0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
n是个float类型的,a,b的值也都是float的。怎么可能与0相对啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询