C语言判断一个数能否被3、5整除,错在哪?

 我来答
月光下的qq
2021-10-17 · 科技优质答主
月光下的qq
采纳数:392 获赞数:666

向TA提问 私信TA
展开全部
您好,很高兴回答您的问题。
在c语言程序设计中,有一个主线是一定要遵守的。那就是编写的程序主函数中顺序是先定义变量、接着赋值或者从键盘输入变量、然后计算、最后是输出。任何时候都要遵循这样的顺序。其中主要的部分就是计算,也就是实现程序功能的部分。但是其余的步骤也是不能忽视的。比如一定要先赋值或者从键盘输入确定的值,然后才能计算,否则连确定的值都没有,怎么能通过计算得到正确的结果呢。
通过查看您的程序,发现您的输入和计算两个过程颠倒了顺序,应该先从键盘输入数据,然后判断取余3和取余5的过程,您可以修改一下试试,就是把scanf函数所在的语句放到int n;语句的后面。
金色潜鸟
2021-10-17 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5134万
展开全部
需要先输入 n 的数值,然后再计算 r=n%i; p=n%m;
错在 n 刚做了变量类型声明,尚未输入数值时,就 计算 r=n%i; p=n%m; 这样 得到的 r,p 是不可靠的。
应改成:
int n; int i=3,m=5; int r,p;
scanf("%d",&n); //输入n
r=n%i; p=n%m; //算得r,p
再接着写条件语句和输出语句。

----
另外,程序一般应当用 英文 ASCII 码书写,除非你有中文编译器才可夹中文。
还有,可以简化 程序,省略 r,p:
scanf("%d",&n);
if (n%3==0 && n%5==0) printf("Yes!"); else printf("No!");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销

2021-10-17 · TA获得超过1067个赞
知道大有可为答主
回答量:7379
采纳率:95%
帮助的人:198万
展开全部
它的错误在于,程序中的scanf语句应该放在r、p被赋值之前被执行才对。
在你的程序中,n在被求余时,因为此时n没有被外界的输入赋值,故它被缺省地赋了一个零。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序小冰

2021-12-04 · 程序爱好者,与诸位共同进步
程序小冰
采纳数:340 获赞数:478

向TA提问 私信TA
展开全部
你应该把整除那个放到后面而不是放到前面去判断,这样是不行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杯具——悲剧69779c
2021-10-17 · TA获得超过1351个赞
知道大有可为答主
回答量:3003
采纳率:64%
帮助的人:478万
展开全部
你应该先定义n 然后再使用
追问
怎么定义
追答
你猜第七行的r知道n等于几吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式