C语言运算符!

/*代码1*/
#include <stdio.h>
#include <windows.h>
int main (void)
{
int a;
puts("请输入一个整数:");
scanf("%d",&a);
if (a%2)
puts("该整数是奇数。");
else
puts("该整数是偶数。");
system("pause");
}

/*代码1*/
#include <stdio.h>
#include <windows.h>
int main (void)
{
int a;
puts("请输入一个整数:");
scanf("%d",&a);
if (a/2)
puts("该整数是奇数。");
else
puts("该整数是偶数。");
system("pause");
}

代码2运行的结果不论输入是什么数,永远显示是奇数。这个是为什么?

%是除法取余运算。用于整数与整数运算。否则,不同的编译器会得不同结果。'%'为取余运算符,用于把它前面的整数值或表达式除以其后面的整数值或表达式,结果为不能被后面的整数或表达式整除的最小整数,它后面的数值应该为大于1的正整数。
如"13%7",就表示13
除以7余6。
作为双目运算符,左右操作数可以是数值,也可以是表达式。但'%'运算符的左右操作数必须是整数。负数取余运算MS
VC++
编译器:
-4
%
6
=
-4
6
%
-4
=
2
扩展资料:
在整数的除法中,只有能整除与不能整除两种情况。当不能整除时,就产生余数,所以余数问题在小学数学中非常重要。
取余数运算:
a
mod
b
=
c
表示
整数a除以整数b所得余数为c。
余数的计算公式:c
=
a
-⌊
a/b⌋
*
b
其中,⌊
⌋为向下取整运算符,向下取整运算称为Floor,用数学符号⌊
⌋表示
例:⌊
3.476
⌋=3,⌊6.7546⌋=6,⌊-3.14159⌋=
-4

7
mod
3
=
7-⌊7/3⌋*3=7-2*3=1
参考资料:余数_搜狗百科
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-11
代码1是a%2表示判断a除以2的于是是否为0,这是判断奇偶的标准方法;

代码2是a/2表示判断a除以2的商是否为0,只有输入0的时候才执行else,否则都是显示“奇数”的提示,这个算法判断奇偶是错误的。
第2个回答  推荐于2016-06-19
a/2 的结果永远是一个正整型,在if条件里面永远是‘真’。
a%2 表示能整除返回0,不能整除返回1,满足if条件的真假,0表示假,1表示真。本回答被提问者采纳
第3个回答  2014-06-11
那是当然的。。代码1是求余。。余数为0则为偶数。。代码2是除以。。a=1的时候,a/2=0,a>2,无论什么数都不等于0
第4个回答  2021-01-07

相似回答