永发信息网

关于C语言中for后面有效范围的问题,求帮助

答案:3  悬赏:40  手机版
解决时间 2021-03-20 00:01
  • 提问者网友:一抹荒凉废墟
  • 2021-03-19 15:40
如下程序:
#include
#include
#define N 10
double fun(double *x)
{ int i, j; double av, y[N];
av=0;
for(i=0; ifor(i=j=0; iif( x[i]{y[j]=x[i]; x[i]=-1; __2__;}
i=0;
while(i{ if( x[i]!= -1 ) y[j++]=x[i];
__3__;
}
for(i=0; ireturn av;
}

问:第二个for后面的有效范围只是
if( x[i]{y[j]=x[i]; x[i]=-1; __2__;}

还是一直到第三个for,即有效范围是
if( x[i]{y[j]=x[i]; x[i]=-1; __2__;}
i=0;
while(i{ if( x[i]!= -1 ) y[j++]=x[i];
__3__;
}

以前看书说for不加大括号的话后面有效语句只有一句,即分号结尾的一句,但是while里面的 j++ 又必须是for里面的,所以很困惑。。
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-03-19 17:20
第二个for后面的有效范围只是
if( x[i] {y[j]=x[i]; x[i]=-1; __2__;}

没有谁规定了while里面的j++必须是for里面的。j是一个fun函数内的临时变量,在函数内都有效。
全部回答
  • 1楼网友:平生事
  • 2021-03-19 18:17
第二个for后面的有效范围只是 if( x[i]
  • 2楼网友:归鹤鸣
  • 2021-03-19 18:10
1) 复合语句中定义的变量,其作用域仅仅限于该作用域。 例如for(int i=1;i<=100;i++)在循环做完以后就失效了。 2)rec1是一个,rec2+rec3是一个,(rec4,rec5)是一个,总计三个。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯