11 12行错误需要逻辑0或非0在 main 函数中,求高手指点

intmain(void){inti,j;scanf("%d%d",&i,&j);printf("i+1=%d\n",i+1);printf("j+1=%d\n",j+1... int main(void)
{
int i,j;
scanf("%d%d",&i,&j);
printf("i+1=%d\n",i+1);
printf("j+1=%d\n",j+1);
printf("i++=%d\n",i++);
printf("j++=%d\n",j++);
printf("++i=%d\n",++i);
printf("++j=%d\n",++j);
printf("i+++++j=%d\n",i+++ ++j);
printf("++i+++++j++=%d"++i+++++j++);
getch();

}
我用WIN-TC的
展开
 我来答
臻待仙菇里1B
2011-11-04
知道答主
回答量:5
采纳率:0%
帮助的人:3.5万
展开全部
你写的是int main();最好在getch()后加个return 0;比较规范,或者改成void main()也行;
主要是最后一句错了,printf("++i+++++j++=%d",++i+++++j++);按照词法分析器应该理解为
((++i)++) + ((++j)++),++是个自加赋值运算符,他的运算对象是左值,即只能是整形变量,
不能是常数或表达式,++i是表达式,(++i)++ 就错了
yepan58
2011-10-25 · 超过23用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:67.3万
展开全部
printf("++i+++++j++=%d",++i+++++j++);
第二个"后面加逗号,++j++这种写法是错误的
vc6.0下按照++(i++)来解析,而前加这种运算它的右边必须是左值。(i++)很显然不是。
printf("((++i)++) + ((++j)++)=%d",((++i)++)+((++j)++));
说一下你这句代码吧。我觉得完全没有意义
第一 代码可读性太差
第二 效率不见有提高
第三 不同版本的编译器对语言的解析可能有少许差别
追问
其实这是我的作业:1. 编写一个C语言程序,测试下列各表达式
i , j
i + 1,j + 1
i + + ,j + +
+ + i, + + j
i + + + + + j
+ + i + + + + + j + +
要求在各表达式中i和j都分别有相同的初值。在实验中注意下列问题:
(1) 哪些表达式是错误的?为什么?
(2) 理解+,++,++i,i++的意义和优先级别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clingch2000
2011-11-01 · TA获得超过492个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:132万
展开全部
11 12行建议改成
printf("i+++=%d,++j=%d\n",i+++,++j);
printf("++i=%d,+++++j++=%d",++i,+++++j++);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友17827085e
2011-11-01 · TA获得超过157个赞
知道答主
回答量:138
采纳率:0%
帮助的人:79.7万
展开全部
11行i+++ ++j中间有个空格.....
12行少逗号......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式