C语言-条件运算符求解~

nerv0 2008-09-12 01:43:16
用C的条件运算符:z=(x>y)?x:y;
做下面习题:编写一个这样的if语句,即仅当X位于1到20之间时,将X的值赋给变量Y;如果X不在这个范围内,则保持Y的值不变.
我写了段代码:

#include <stdio.h>
int x,y;
int main()
{
scanf("%d,%d",&x,&y);
y=(x>=20)?y:x&&(x<=1)?y:x;
printf("%d\n",y);
return 0;
}

能判断出除0之外的数,不知道为什么当X=0的时候不能判断,请大家帮帮看,要用条件运算符编.
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysysbaobei 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nerv0 的回复:]
谢大家帮忙,我修改了~~~现在能正确判断~~~大家看看合适不?
#include <stdio.h>
int x,y;
int main()
{
scanf("%d,%d",&x,&y);
y=(x>1&&x <20)?x:y;
printf("%d\n",y);
return 0;
}
[/Quote]

写反了吧
y=(x>1&&x <20)?y:x;
qmm161 2008-09-12
  • 打赏
  • 举报
回复
y=(x>=20)?y:x&&(x <=1)?y:x;

lz 知道你写的是什么意思么?注意运算符的优先级与结核性!翻译一下

y=((x>=20)?y:((x&&(x <=1))?y:x));
x>=20 时 y = y
否则,判断(x&&(x<=1)),即判断x<=1且x不为0,如果成立 y = y
否则 y = x

知道答案有什么用,要知道自己错在哪里
人海迷航 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nerv0 的回复:]
谢大家帮忙,我修改了~~~现在能正确判断~~~大家看看合适不?
#include <stdio.h>
int x,y;
int main()
{
scanf("%d,%d",&x,&y);
y=(x>1&&x <20)?x:y;
printf("%d\n",y);
return 0;
}
[/Quote]
好像还是错的。呵呵
nerv0 2008-09-12
  • 打赏
  • 举报
回复
谢大家帮忙,我修改了~~~现在能正确判断~~~大家看看合适不?
#include <stdio.h>
int x,y;
int main()
{
scanf("%d,%d",&x,&y);
y=(x>1&&x<20)?x:y;
printf("%d\n",y);
return 0;
}
ysysbaobei 2008-09-12
  • 打赏
  • 举报
回复
来个更一般的

int main()
{
int x,y,m,n,t;
printf("please input the number:x,y\n");
scanf("%d,%d",&x,&y);
printf("please input the number:m,n\n");/输入限定范围的2个数m、n/
scanf("%d,%d",&m,&n);

if(m<n)
{t=m;m=n;n=t;};/**保证m大,n小/

y=(x>=m||x<=n)?y:x;

printf("%d\n",y);
return 0;
ysysbaobei 2008-09-12
  • 打赏
  • 举报
回复
方法一:

int main()
{
int x,y;
scanf("%d,%d",&x,&y);
y=(x<=1||x>=20)?y:x;
printf("%d\n",y);
return 0;
}


方法二:

int main()
{
int x,y;
scanf("%d,%d",&x,&y);

if (x!=0)
y=(x>=20)?y:x&&(x <=1)?y:x;

printf("%d\n",y);
return 0;
}
xiansizhe 2008-09-12
  • 打赏
  • 举报
回复
#include <stdio.h>
int x,y;
int main()
{
scanf("%d,%d",&x,&y);
y=(x>=20||x==0)?y:x&&(x <1)?y:x; /* 加一条x==0判断 */

printf("%d\n",y);
return 0;
lann64 2008-09-12
  • 打赏
  • 举报
回复
y=(x>=20)?y:x&&(x <=1)?y:x; //当x=0时 x&&(x<=1)为false,返回x,就成了把x赋值给y,逻辑错了。
换成:

y=(x>=20)?y:(x <=1)?y:x;
计算机程序设计(C语言)教案 " "计算机 "总学时 " " "程序设计 " " " " " " " " " " " " " " "简要回 "讲解实验四 "通过讲解实 " "顾 "复习printf和scanf函数,getchar()和putchar函数的用"验四回顾顺 " " "法 "序结构程序 " " " "设计方法 " "阐述主 "关系运算符和关系表达式 "强调重点和 " "题 "逻辑运算符和逻辑表达式 "难点 " " "条件运算符 " " " "if语句(重点、难点) " " " "switch语句(重点、难点) " " "关系运 "关系运算实际上是比较运算,两个值进行比较,判断比较 "强调关系运 " "算符和 "的结果是否符合给定的条件,如果符合比较的结果为真, "算符中等于 " "关系表 "否则结果为假。 "用==表示, " "达式 "用关系运算符将两个表达式(可以是算术表达式、关系表"注意与=的区" " "达式、逻辑表达式、赋值表达式、字符表达式)连接起 "别 " " "来的式子叫关系表达式。 " " " "关系运算符与其它运算符的优先次序。 " " " "C语言提供六种关系运算符: " " " " < 小于 " " " " <= 小于等于 " " " " > 大于 " " " " >= 大于等于 " " " " == 等于 " " " " != 不等于 " " "逻辑运 "用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑 "强调在逻辑 " "算符和 "表达式。 "表达式的求 " "逻辑表 "逻辑运算符与其它运算符的优先次序。 "解中,并不是" "达式 "逻辑表达式的值应该是一个逻辑量"真"或"假",以数值"1"所有的逻辑 " " ""或"0"表示.而在判断一个量是否为"真"时,以"0"代表假"运算都被执 " " ",以非"0"代表真。 "行。 " " "在逻辑表达式的求解中,并不是所有的逻辑运算都被执行" " " "。 " " " "&&逻辑与 " " " "" "逻辑或 " " " "!逻辑非 " " "实例分 "例:满足下列一个条件即为闰年: 能被4整除,不能被100"通过课堂提 " "析 "整除 能被4整除,又能被400整除. "问,引导学 " " "(year%4= =0&&year%100!=0) " " year%400= =0 "生参与思考 " " "!((year%4= =0&&year%100!=0) " "year%400= =0) " " " "(year%4!=0) " "(year%100= =0&&year%400!=0) " " "条件运 "格式:表达式1?表达式2:表达式3 "强调条件运 " "算符 "条件运算符要求有三个操作对象,称三目运算符,它是c"算符要求有 " " "语言中唯一的三目运算符。 "三个操作对 " " "条件表达式 max= (a>b)? a:b 相当于 "象,是三目 " " "if (a>b) max=a; else max=b; "运算符 " " "说明: " " " "条件运算符的执行顺序 " " " "条件运算符的优先级别,仅高于赋值运算 " " " "条件运算符的结合方向为右结合性 " " " "条件表达式不能取代if语句 " " " "条件表达式中的表达式类型可以不同 " " "实例分 "例:编程,输入一个字符,若是大写就转换成小写;若 "通过例题体 " "析 "不是就不转换,输出字符。main(){char "会条件运算 " " "a;scanf("%c",&a);if (a>='A'&&a<='Z') "符的使用 " " "a=a+32;printf("%c",a);} " " " "//a=(a>='A'&&a<='Z')?a+32:a; " " " "} " " "if "if语句是用来判定是否满足所给定条件,根据判定结果( "分析if语句 " "语句( "真或假)决定执行给出的两种操作之一。 "的三种形式 " "重点、 "if语句的三种形式: " " "难点) " if (表达式) 语句 " " " " if (表达式) 语句1 else 语句2 " " " " if (表达式1) 语句1 " " " "else if (表达式2) 语句2 " " " "else if (表达式3) 语句3 " " " "...... " " " "else if (表达式n) 语句n " " " "else 语句n+1 " " "if语句 "在if语句的内部使用if语句,例如: "if语句的嵌 " "的嵌套 "if ( )if ( ) 语句1else if ( ) 语句2else 语句3 "套,注意与i" " " "f语句的三种" " " "形式的区别

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧