C语言判断一个数能否被3、5整除,错在哪?
7个回答
展开全部
您好,很高兴回答您的问题。
在c语言程序设计中,有一个主线是一定要遵守的。那就是编写的程序主函数中顺序是先定义变量、接着赋值或者从键盘输入变量、然后计算、最后是输出。任何时候都要遵循这样的顺序。其中主要的部分就是计算,也就是实现程序功能的部分。但是其余的步骤也是不能忽视的。比如一定要先赋值或者从键盘输入确定的值,然后才能计算,否则连确定的值都没有,怎么能通过计算得到正确的结果呢。
通过查看您的程序,发现您的输入和计算两个过程颠倒了顺序,应该先从键盘输入数据,然后判断取余3和取余5的过程,您可以修改一下试试,就是把scanf函数所在的语句放到int n;语句的后面。
在c语言程序设计中,有一个主线是一定要遵守的。那就是编写的程序主函数中顺序是先定义变量、接着赋值或者从键盘输入变量、然后计算、最后是输出。任何时候都要遵循这样的顺序。其中主要的部分就是计算,也就是实现程序功能的部分。但是其余的步骤也是不能忽视的。比如一定要先赋值或者从键盘输入确定的值,然后才能计算,否则连确定的值都没有,怎么能通过计算得到正确的结果呢。
通过查看您的程序,发现您的输入和计算两个过程颠倒了顺序,应该先从键盘输入数据,然后判断取余3和取余5的过程,您可以修改一下试试,就是把scanf函数所在的语句放到int n;语句的后面。
展开全部
需要先输入 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!");
错在 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!");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
它的错误在于,程序中的scanf语句应该放在r、p被赋值之前被执行才对。
在你的程序中,n在被求余时,因为此时n没有被外界的输入赋值,故它被缺省地赋了一个零。
在你的程序中,n在被求余时,因为此时n没有被外界的输入赋值,故它被缺省地赋了一个零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该把整除那个放到后面而不是放到前面去判断,这样是不行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该先定义n 然后再使用
追问
怎么定义
追答
你猜第七行的r知道n等于几吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询