c语言中,m=(num1>num2)?num1:num2;这个语句啥意思?里面的问好和冒号是啥作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中,m=(num1>num2)?num1:num2;这个语句啥意思?里面的问好和冒号是啥作用相关的知识,希望对你有一定的参考价值。

int main()

int m;
int num1,num2;
printf("enter");
scanf("%d %d",&num1,&num2);
m=(num1>num2)?num1:num2;
printf("%d\n",m);
getchar();
getchar();
return 0;

m=(num1>num2)?num1:num2;
这个 ?+: 是一个三目运算
意思是:如果 num1大于num2 那么 m等于 num1 否则 m等于 num2;

相当选 if .. else...
这个 m=(num1>num2)?num1:num2;

可以写成
if(num1>num2)

m=num1;

else

m=num2;
参考技术A m=(num1>num2)?num1:num2;
这句话的意思是:如果num1 > num2 则m = num1,否则 m = num2。
? 跟if一样,:跟else 一样。
参考技术B m=(num1>num2)?num1:num2的意思是,如果num1>num2,m=num1;否则,m=num2。
?:是条件运算符,是C语言中唯一的一个三目运算符。
参考技术C 这个是三元运算符,格式为a=(b>c)?b:c,意思是如果b大于c,也就是括号里的条件b>c成立,那么a=b,反之b>c不成立,则a=c,望采纳 参考技术D 如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。
条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
表达式1? 表达式2: 表达式3
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。
例如条件语句:
if(a>b) max=a;
else max=b;
可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
使用条件表达式时,还应注意以下几点:
1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
2. 条件运算符?和:是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
例如:
a>b?a:c>d?c:d应理解为
a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条
件表达式。
void main()
int a,b,max;
printf("/n input two numbers: ");
scanf("%d%d",&a,&b);
printf("max=%d",a>b?a:b);

用条件表达式对上例重新编程,输出两个数中的大数。本回答被提问者采纳

c语言:输入两个正整数m和n,求其最大公约数和最小公倍数

输入两个正整数m和n,求其最大公约数和最小公倍数。

解:程序:

#include <stdio.h>

int main()

{

int num1, num2, t,p;

printf("请输入两个正整数:");

scanf("%d,%d", &num1, &num2);//7,8   

p = num1*num2;

while (t = num1%num2)//7           1        0,循环结束

{

num1 = num2;     //8           7 

num2 = t;        //7,循环继续  1

}

p = p / num2;

printf("它们的最大公约数:%d\n", num2);

printf("它们的最小公倍数:%d\n", p);

return 0;

}

结果:

请输入两个正整数:3,6

它们的最大公约数:3

它们的最小公倍数:6

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1742297

以上是关于c语言中,m=(num1>num2)?num1:num2;这个语句啥意思?里面的问好和冒号是啥作用的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序题:输入任意三个整数num1、num2、num3,求三个数中的最大值

c语言编程中,max=num1>num2?num1:num2;是啥意思?

解答一个C语言程序。

C语言中 num3=(num1=34,num2++,num1+num2++)解释下啥意思

c语言编写程序,完成将num1和num2两个内存单元的值进行交换,要两种方法?

C语言 求大神改成正确的 题目是:输入两个整数num1和num2,计算并输出它们的和、差、积、商和余数