永发信息网

C++中的for循环,求指导

答案:5  悬赏:0  手机版
解决时间 2021-02-05 09:47
求解释第二个for循环的意思,不理解为什么for(int j=0;a[j];j++)中的a[j],为什么是a[j]呢?一般的形式不都是for(int i=0;i<某某;i++)嘛,初学者,求详解!
此代码要实现的功能为:输入一组非0整数(以0结束)到一个一位数组中,求出这一数组的平均值,并分别统计正负数的个数。
#include
#include
#include
#include
void main()
{
int a[100],c1=0,c2=0;
float ave,s=0;
for(int i=0;i<100;i++){
cin>>a[i];
if(a[i]==0)break;
}
for(int j=0;a[j];j++){
s+=a[j];
if(a[j]>0)c1+=1;
if(a[j]<0)c2+=1;
}
ave=s/(c1+c2);
cout< cout<}
最佳答案
C,C++ for 循环有两种形式
for (e0;e1;e2)s;

for(e0;e1;e2){ss;}
也有人这样写
for(init;condition;inc)statement;

for(init;condition;inc){statements}
三个表达式中:
第一个e0,可以称作: 初始化表达式,初始化某些变量;
第二个e1,可以称作:条件表达式,符合条件执行循环,不符合退出循环。
第三个e2,可以称作:自增表达式,递增表达式,用于推进循环,一便循环能够结束。
至于s 和ss 分别是语句或语句组,称为循环语句,是循环的主要执行对象。
e0,e2 是循环结构的组成部分。
都可以是任何合法的C,C++表达式,也可以为空。
e1 可以是任何可以与0 相比较的表达式。
其中C:
e0,e1,e2
不可以是声明语句(?表达式);
C++: 似乎可以是定义语句(?表达式)(声明同时初始化)
s;ss 也可以为空。s可以是任何的合法C,C++可执行语句 。(C:s不可以是声明语句)
ss 可以是任何的合法C,C++语句的组合 。
和其它语言不同
C的for循环的三个表达式,可以是任意表达式,也可以为空。
e0 为空,表示不需要初始化任何东西。
e1 为空,表示无条件循环,不需要判断任何条件。
e3 为空,表示循环语句或语句组执行后,不需要在执行自增表达式了,直接进入下一轮循环
条件判断。
循环语句或语句组为空,表示只需要执行三个表达式,和条件判断。不需要再额外执行其他语句了。
for(int j=0;a[j];j++)中的a[j] 表示判断a[j] 是否为非0,是执行循环,否结束循环。
C,C++的三个循环语句,都是当型循环,没有直到型循环,都是条件非0执行,为0结束。
PS:
C:除了声明语句和流程控制语句函数定义语句类型第一语句外,其他都是表达式。
预处理语句不是C语言的一部分,是另外一种语言,可以称为预处理语言。
函数调用也是表达式,叫做函数调用表达式;
对于有返回值的函数,函数的返回值就是函数调用表达式的值。
对于C来说一般的语句就是表达式加分号;
分号可以区分表达式是语句还是非语句。
表达式就是C的执行代码;
没有分号的表达式仅仅是个表达式,加了分号的表达式就成了一个语句。
全部回答
for(int j=0;a[j];j++)中的a[j];表示只要a[j]不为0,就继续执行循环体
for循环中 第一个分号后面的是一个条件判断 ,比如i<5.如果i=6那么这个表达式的值就是0,i=4,那么4<5这个表达式就是判断成功,这个表达式的值就是1.表示可以执行循环里面的程序。同理。如果a[j]这个值本身就是0,那么也表示这个判断是错误的,所以不执行循环里的程序。所以该程序表示如果a[j]=0 的时候 这个循环就结束了。
为什么是a[j]呢?一般的形式不都是for(int i=0;i<某某;i++)嘛,初学者,求详解! 这个不一定都是i<某某,只是作为一个判断依据,在c++中,除了0以外都是true。那么只要a[i]不为0,循环就会继续运行,i<某某的目的也只是为了判断是否为0或非0(其实就是true 或者false)
没有差别,编程风格(习惯)不一样 还有你第一个最后忘记加分号了

1、

for(i=0;i<=1;i++)

  for(j=0;j<=2;j++);

2、

for(i=0;i<=1;i++)

{

    for(j=0;j<=2;j++);

}

3、

for(i=0;i<=1;i++)for(j=0;j<=2;j++);

三个都一样。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
高视眼镜(北辰1店)地址有知道的么?有点事想
薪宏源旅馆地址在哪,我要去那里办事
知明眼镜(宜白路店)地址在哪,我要去那里办事
请问,吃票子,
大学英语六级考520分 是不是很低
在砖砌体上支承钢筋混凝土梁时,当梁跨度大于
有没有跟公公一起住一起生活
宏兴大酒店这个地址在什么地方,我要处理点事
世界上真的有念力吗 人体导出的电波强大到有
睛姿眼镜店地址在哪,我要去那里办事
你怎么会在这里呢?改为陈述句
下飞机后耳朵听不见
大明眼镜(万源店)地址有知道的么?有点事想过
粒不成声是什么意思?
中原区郑州冉屯东路中医诊所地址在什么地方,
推荐资讯
橙满幸福婚庆地址在什么地方,我要处理点事
我的临牌2017.1.30号就到期了怎么办
大话西游2里面猫的作用大吗?
恒福陶瓷怎么去啊,有知道地址的么
qq音乐中的乐库在哪?
强哥造型我想知道这个在什么地方
关于vb的问题。我在窗体上创建了一个frame,
李医生专卖(曲阜店)地址有知道的么?有点事想
我现在的上身和下身比例有点失调,上身比较短
去城管办事,里面的执法人员该怎么称呼他们?
中央游月谁有?
我刚买了一张实名制的火车票,因为不小心洗衣
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?