-6

変数をランダム化し、使用したい関数で使用しようとしています。しかし、ランダム化された変数を以下のように for ループに入れて、それを必要な関数で使用すると、エラーが発生します。

#include <stdlib.h>
#include "time.h"

void main (void) { 
  for (int i = 0; i < 4; i++) {
    srand( time(NULL )); 
    float r;
    r = rand()*1000;
  }

  write(abc, r);
  read(abc, r);
  write(xyz, r); 
  read(xyz, r);
} 

したがって、 for ループから r を使用すると、次のエラーが表示されます。

In function 'void sim()':
'r' was not declared in this scope

しかし、rfor ループから削除すると、エラーは発生しません。しかし、書き込み関数ごとに異なるデータを持つように for ループが必要です。

任意の提案をいただければ幸いです。

4

2 に答える 2

3

rはループのローカル変数であり、ループの外では見えません。これを修正するには、declaration( float r;) をループの前に配置します。

于 2013-05-22T20:45:38.483 に答える
3

r のスコープは for ループ内のみです。ループの前に宣言すると、準備完了です。

于 2013-05-22T20:46:22.903 に答える