C语言中关于if函数的问题 20
#include<stdio.h>voidmain(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);elseprintf(...
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a++<9)
printf("%d\n",a);
else
printf("%d\n",a--);
}
给出详细的分析,输入9为什么结果是10 展开
void main()
{
int a;
scanf("%d",&a);
if(a++<9)
printf("%d\n",a);
else
printf("%d\n",a--);
}
给出详细的分析,输入9为什么结果是10 展开
10个回答
展开全部
很简单
if(a++<9) 时 a++ 是先运行比较 完成后 才++的
比较是 9 明显不小于9 然后自加 转到else
再转到else
然后在else的 printf里 a-- 也是同样 先输出 然后再自减
因此输出10 然后才自减为 9
看我的程序 你就明白了
9
10
9
Press any key to continue
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a++<9)
printf("%d\n",a);
else
printf("%d\n",a--);
printf("%d\n",a);
}
if(a++<9) 时 a++ 是先运行比较 完成后 才++的
比较是 9 明显不小于9 然后自加 转到else
再转到else
然后在else的 printf里 a-- 也是同样 先输出 然后再自减
因此输出10 然后才自减为 9
看我的程序 你就明白了
9
10
9
Press any key to continue
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a++<9)
printf("%d\n",a);
else
printf("%d\n",a--);
printf("%d\n",a);
}
展开全部
输入a=9时,首先判断if语句
a是否小于9?
a是否小于9决定是执行if语句还是else语句
判断完之后,a++变为10
事实上,输入为9,会执行else语句
用printf函数输出a的值10后,a会执行a-1变为9
如果输入a=8,则会输出为9
C语言中的if语句主要有三种应用情况
第一种情况是多个if语句并列
if(表达式1)
{
...
}
if(表达式2)
{
...
}
第二种情况就是if和else组合
if(表达式)
{
...
}
else
{
...
}
第三种情况就是,多个if和else if
if(表达式1)
{
...
}
else if(表达式2)
{
...
}
...
else
{
...
}
a是否小于9?
a是否小于9决定是执行if语句还是else语句
判断完之后,a++变为10
事实上,输入为9,会执行else语句
用printf函数输出a的值10后,a会执行a-1变为9
如果输入a=8,则会输出为9
C语言中的if语句主要有三种应用情况
第一种情况是多个if语句并列
if(表达式1)
{
...
}
if(表达式2)
{
...
}
第二种情况就是if和else组合
if(表达式)
{
...
}
else
{
...
}
第三种情况就是,多个if和else if
if(表达式1)
{
...
}
else if(表达式2)
{
...
}
...
else
{
...
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言if函数的用法
main() { int a=3,b=4,c=5,t=99; 从这题来看,这应是T中间变量,用来进行另两个数的交换,故T可不用赋值 if(b<a&&a<c) t=a;a=c;c=t; b<a&&a<c这是B小于A并且A小于C 若满足这条件,则A与C的值互换 这题不满足这一条件if(a<c&&b<c) t=b;b=a;a=t; 这与上式意思相同 但满足这条件,所以b与a互换printf("%d%d%d\n@",a,b,c); 结果应该是照常输出
main() { int a=3,b=4,c=5,t=99; 从这题来看,这应是T中间变量,用来进行另两个数的交换,故T可不用赋值 if(b<a&&a<c) t=a;a=c;c=t; b<a&&a<c这是B小于A并且A小于C 若满足这条件,则A与C的值互换 这题不满足这一条件if(a<c&&b<c) t=b;b=a;a=t; 这与上式意思相同 但满足这条件,所以b与a互换printf("%d%d%d\n@",a,b,c); 结果应该是照常输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体执行流程是这样的:
if(a++<9)判定失败,判定完后,a+1=10;
然后,执行else的语句,printf(“%d\n",a--);是先输出a,再执行a-1=9的操作,这是因为--在a后面的原因.
具体分体:
a++/a--表示先执行已有判断或操作,然后执行a+1/a-1;
++a/--a则相反,先执行a+1/a-1,然后再执行其它操作,你可以写几行代码测试一下。
if(a++<9)判定失败,判定完后,a+1=10;
然后,执行else的语句,printf(“%d\n",a--);是先输出a,再执行a-1=9的操作,这是因为--在a后面的原因.
具体分体:
a++/a--表示先执行已有判断或操作,然后执行a+1/a-1;
++a/--a则相反,先执行a+1/a-1,然后再执行其它操作,你可以写几行代码测试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a++和++a的区别,看看书上的解释吧。
(a++<9)先比较a是否小于9,如果是(++a<9),则先a+1在比较a是否小于9。
这个书上有的,好好看看书哦
(a++<9)先比较a是否小于9,如果是(++a<9),则先a+1在比较a是否小于9。
这个书上有的,好好看看书哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询