C语言:运行一下程序,输出结果是:

#include<stdio.h>

void main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}

并解释一下为什么

scanf("%d",&n);这句话是让你输入一个n的值

这里要分两种情况讨论,如果此时你输入额n<10,那么会输出n+1,比如你输入n为5,那么会输出6,这是由于n++<10这句,可以等效为n<10,n=n+1,也就是先用n去比较大小,然后再自己+1,如果是++n<10的话就是先自己+1,然后再去比较。
同理,如果你输入的n大于等于10,那么输出的结果也是n+1,应为在if语句里面n自己会+1,而在else里面的printf那一句用的是n--,那么这句话也可以等效为:
printf("%d\n",n),n=n-1;
总之呢就是如果**(代表运算符)在变量前面,就是先自计算然后再使用变量,如果**是在运算符后面,就是先用变量,然后在进行自计算。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-01
你输入的值10以下的值, 输出就是 你输入的值+1

10 或 10 以上的值, 输出就是 你输入的值+1

总之就是返回 输入的值+1
第2个回答  2013-09-01
首先你输入一个整数n,然后会输出一个整数n+1。比如你输入5输出会是6,或者输入100输出101。if(n++<10)这执行了n+1的操作,printf("%d\n",n);如果n+1<10数输出是n+1。else printf("%d\n",n--);如果n+1>10数输出是n+1,然后再执行n+1-1.。回答完毕,希望采纳追问

如果输入9,其结果是什么

第3个回答  2013-09-01
当输入的n<10时,输出的是n+1,因为判断条件为n++<10,先判断n是否小于10,再让n自加1,打印出n;
当输入n>=10是,输出的也是n+1,因为printf("%d\n",n--)语句相当于printf("%d\n",n);n---;也就是说,先打印n,n再自减1追问

如果输入9,其结果是什么

追答

输出是10,原因是,判断语句if(n++<10) printf("%d\n",n);相当于if(n<10) {n++ printf("%d\n",n);}
自加符号“++”用在赋值或者判断语句中先赋值、判断,再自加1。

本回答被提问者采纳

4.26 C语言,一下程序运行后输出结果是#include<stdio.h>
输出为emoclew 也就是把welcome这个词反序了一下 p=str+strlen(str)\/2+1; 的意思是取得单词中间后面一个字符的地址指针 然后调用f(p,p-2); 就是把这个指针所指的字符进行对调,在这个程序最后再次调用f(s,t); 这种方法我们称之为递归调用。 在不满足条件if(*s),也就是指针所指字符为0时,...

c语言中如何让程序运行输出结果?
1、首先在打开的c语言软件中,第一行输入代码,表示输出。2、接下来输入三行代码,输入的值在这里进行转换,如下图所示。3、接下来就用到了if,这里表示如果的意思,如下图所示。4、现在开始运行,CTRL+F5,接下来在控制台上随便输入3个数。例如:60,50,40,就可以看到输出了40,表示运行成功了。

C语言若一下程序段的输出结果是
c 程序fun中用xy,而main中也用xy不太好,个人认为啊 先打印fun中的*x *y,是1 2没有错,接着赋值*x *y为3 4 这里就改变了xy指向的空间中的数据 x指向的空间是main中x的数据所在的空间,这没错吧 因为传递过去的是xy的地址 你要明白一个道理,子函数的形参是实参的一个影子,没法再子...

C语言,以下程序运行后的输出结果为__
开始时,len为0,offset=3,offset不为0,先输出p+offset-1上的元素,即*(p+2),为g,并len++,再调用print(str)。之后,每次递归,len静态变量保存了上一次的值。实际上,len每加一,offset就随之向左偏移一位,指向前面的一个字符,也就是倒过来输出字符串中的每个字符。直到len=strlen(str)...

c语言,以下程序运行后的输出结果是
a+=a-=5)是一个表达式,(a=b,b+3)是另一个表达式。a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,将值赋给c,c=-10,此时,a=-5 a=b,将b的值赋给a,a=0,执行b+3=0+3=3,这个3不对任何变量赋值。因此最终结果a=0,b=0,c=-10 输出a、b、c的值,输出0,0,-10 ...

以下运行程序后的输出结果是#include<stdio.h>main(){int x=1,y=1...
首先指出程序中的三处错误,第一个是int m n中间应该有逗号,第二个是swtich拼写有错误,第三个是打印输入语句printf("x=%d,y=%d",x,y)有误。修正后程序的运行结果是:x=6,y=6。代码运行结果如下图所示:程序运行过程解析:1、完成变量的赋值,其中有x=1,y=1,m=1,n=1。2、执行第一...

C语言 下面程序输出结果是__
…while循环,最初c='A',执行case 'A': k++; break;跳出switch循环,k++,判断c<'G'为真,继续do……while循环,这时c='B'执行case 'B': k--;case 'C': k+=2; break;跳出switch循环,k++,判断c<'G'为真,继续do……while循,如此下去直到c<'G'为假.然后输出K值。如图:...

C语言求解 ,执行下面程序的输出结果为 # include<stdio.h> void ma...
void main 这个写法是错过的,这段程序在ide 编辑器下运行是会报错的,switch 函数也缺少已一个 } 同样会报错,在程序中case:4 后面y+=X 后面是 分号 而不是 冒号,报错。将上面的错误全部修改为正确之后,本程序没有不会输出结果,只是运行了,因为没有写输出函数,加上输出函数之后,输出的结果...

C语言:下面程序运行后的输出结果是2,为什么?
include<stdio.h> void main(){char s[]={"012xy"};\/\/要统计的字符串 int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a'&&s[i]<='z') n++;\/\/此循环在统计字符串s中的小写字母个数,因此为2 printf("%d\\n",n);\/\/输出小写字母个数n } ...

c语言 以下程序的输出结果是___。 我要答案和过程,谢谢
c = 1; (取整)a -= c; \/\/ a = a-1; a = 2;printf("%d, %d, %d, ", a, b, c ); \/\/ 2, 5, 1a += --c; \/\/ c = --c => 0; a += 0;} printf("%d, %d, %d\\n", a, b, c); \/\/ 2, 3, -2}结果是:2, 5, 1, 2, 3, -2 ...

相似回答
大家正在搜