求解一道c语言题目

设有宏定义:#define IsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&(m,7)为真时所要表达的是
为什么答案是判断m被5和7整除是否都余1
而不是判断m是否能被5和7整除呢

第1个回答  2012-03-23
IsDIV(m,5)&&(m,7)
即((m%5==1)?1:0)&&(m,7)
由于后面这个恒为真,所以这个式子要表达的是m是不是被5整除余1
第2个回答  2012-03-23
要判断m是否能被5和7整除,则将
#define IsDIV(k,n)((k%n==1)?1:0)
//改为:
#define IsDIV(k,n)((k%n==0)?1:0)追问

恩 这个我也知道 但是为什么==1就不可以呢 它不能被整除就是输出非0啊 ==1不就也可以了

追答

==1表示余数是1,不能整除可这么表示:
#define IsDIV(k,n)((k%n!=0)?1:0)
//或者:
#define IsDIV(k,n)((k%n)?1:0)

本回答被提问者采纳

一道c语言题目 求大神指点下算法?
根据题意,随机生成红绿蓝球任意个数,并任意顺序排列。这里采用随机数实现。统计按红绿蓝顺序排列最少交换次数,我的思路是:第一步:循环将最后一个红色球与最靠前的其它两色球(并且满足位置在红球之前)交换。第二步:循环将最后一个绿球与最靠前的蓝球(必须在绿球之前)交换。include <stdio.h> ...

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

帮忙解答一道C语言选择题
选项C:typedef struct student s;是将struct student定义为类型s,和第一部分的功能是类似的,只是类型名称不同而已,所以C也是对的.

请教大神们一道c语言的题,有关于for循环的 题目是这样的,程序段运行...
答案是:B. 7 4 理由如下:第一个循环,整个循环体执行后,输出(x=)7,这个没有疑问,执行完循环,for(x=10;x>3;x--)执行x--操作,此时x=6,满足x>3条件,进入第二个循环。第二个循环,x=6不满足if条件,执行2次--x操作,输出(x=)4,执行完循环,for(x=10;x>3;x--)...

一道c语言的计算题。求细致一点的讲解~~~追加!!
题目:输入两个整数 x 和 y,求它们的和、差、积、商、余数。这是一道比较基础的 C 语言计算题目,可以通过输入两个整数,然后使用加、减、乘、除等运算符进行计算,最后输出结果。下面是一份示例代码,给你参考:include <stdio.h> int main() {int x, y;printf("请输入两个整数:\\n");...

有一道C语言的题目:已知:char a; int b; float c; double d;则计算表...
该题选择D答案:1、a定义的是char型,实际上他也可以看做是int型,你试过没有将一个char型的变量用%d的格式输出后,为一个整数,该整数是该字符的ASCII码,是十进制而已。所以a*c之后的类型为float型 2、a*c+c自然也就是float型了。。那么最后就变为float减去一个double型,因为double型表示的...

求解一道c语言题目 请详细解释一下怎样输入输出多组数据。谢谢!_百度...
include<stdio.h>int main(void){ int a[6][5]={{0}}; int i=0,j=0,k=0; int temp; for(i=0;i<6;i++) { for(j=0;j<5;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<6;i++) { for(j=0;j<5;j++) { fo...

下面有一些关于C语言问题,希望大伙儿侃侃,最好解释详细,谢谢呢?_百度...
这道我简单说下,语言点太多,要是不明白,发消息给我,我就这题说详细.return s+strlen(s)\/2,返回的是一个指针,s指向首元素a,strlen(s)\/2=4,固返回的指针指向第五个元素e.主函数中的 printf打印从第五个元素之后的字串.第八题:6 这是一道递规调用.主函数传给函数时f()时,a[]=a[3]首...

一道c语言的题目(40
1、^运算是按位来对比,如果不一样的话,就为1,一样就为0.所以,当执行完a^b 的时候,就可以得到10101101;(高位取反,低位不变,)2、| 是或运行,有1 的话就得到 1, 两种为0 则为0;所以,执行a|b 的话,得到的是 11111101;(高位置1)3、 &与运算,两种为1则为1,否则为0;执行完...

一道C语言
答案C char str[][20]={"Hello","Beijing"} 这表示str是个二维数组,由两个一维数组构成,每个一维数组是20个字节构成。p=str 这表示p是指针,指向二维数组str的首地址 p+20 这表示由p指向的地址向后偏移20个字节,刚好指向了第二个一维数组“Beijing”了 strlen()它是字符数组长函数,对“...

相似回答