首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位高手解释下下面这段c语言代码?

2012-04-28 
谁解释下下面这段c语言代码???数据之间有空行对于这种输出,有时候还会告诉你有几组输入,这样你就可以自己

谁解释下下面这段c语言代码???
数据之间有空行 
对于这种输出,有时候还会告诉你有几组输入,这样你就可以自己判断一下是不是最后一组。是就不输出空行,否则多输出一个空行。
而有时候连共有几组数据都不会告诉你。其实不论知不知道有几组数据,我们都可以这样处理。


第一组数据后面不加空行。 
第二组开始,每组前面加空行。 
比如第1079题,参考代码:

C/C++ code
#include <stdio.h> int main(void){    int a, b, i = 0;     while (scanf("%d %d", &a, &b), a || b)        printf((i++? "\n%d\n": "%d\n"), a + b); //i++?是什意思呀!和这句两个%d    return 0;}


[解决办法]
?: 运算符.
如果 i == 0
printf("%d\n",a+b);
否则
printf("\n%d\n",a+b);

[解决办法]
()?:运算而已,i=0时按照"%d\n"输出,其他按照"\n%d\n"输出
[解决办法]
(x)? (y):是三目运算符!
[解决办法]
(scanf("%d %d", &a, &b), a || b) 逗号表达式,运行两个表达式,总的结果为第二个表达式。
while (scanf("%d %d", &a, &b), a || b)表示如果a.b都是0,则整个表达式结果为0,则不执行while下面的循环语句。



当 a.b 不都为0时,执行下面的语句。
printf((i++? "\n%d\n": "%d\n"), a + b);
括号里面是问号表达式:(条件)?(语句1):(语句2) 问号前是条件,条件成立就做语句1,否则做语句2
i=0;i++,i总是大于0.成立 运行语句1;
printf("\n%d\n",a+b);

因为i总是大于1,所以 总是执行 printf("\n%d\n",a+b);

热点排行