#include<iostream>using namespace std;int main(){ int a[100]; int i,j; for(i=0;i<100;i++) { cin>>a[i]; if('\r') break; } cout<<i<<endl; for(j=0;j<=i;j++) cout<<a[j]<<endl; return 0;}//就是运行结果显示 i=0,不懂啊为什么它不变啊
3 回答
风沙流年
TA贡献7条经验 获得超1个赞
循环里面的if语句是要做什么的?如果你是想表达如果输入了回车,应该写成一个判断表达式a[i]=='\r',仅仅是一个字符的话,if判断为真,直接退出循环,那么i当然为0。
onemoo
TA贡献883条经验 获得超454个赞
if后面的括号中是判断条件,为true则执行if中的语句(在这里是break;)。
但是你在if括号中写的是一个字符字面量'\r',它会被判断为true(字符算是整型,而非零整型就被认为是true),所以当你进入循环后(i被赋值为0),然后进入循环体,执行到if语句后由于被判断为true,所以直接执行break;退出了for循环。 所以最终 i 还是0.
- 3 回答
- 0 关注
- 1599 浏览
添加回答
举报
0/150
提交
取消