2017-11-17 2 views
-1

ヘルプを終了し、最初にこのメイン印刷データと与えられたスタートにしてすべてを印刷して</p> <p>を終了する方法について

for (i = 0; i < 30; i++) { 
    printf("%s\n", Codes[i]); 
    OneStock_ManyDailyData(DS, DS[i].Nametag, "10/2/2017", "11/6/2017");   
    printf("\n\n"); 
} 

内の関数である、これは

void OneStock_ManyDailyData(struct company DS[30], Symbol code, StrDate start, StrDate end) { 
    int i; 
    int c; 
    int x; 
    int y; 
    int a; 

    for(i=0; i<30; i++) { 
     //printf("Entered Loop\n"); 

     if(strcmp(DS[i].Nametag, code) == 0) { 
      //printf("Gotcha!\n"); 

      for(c=0; c<DS[i].ndd; c++){ 
       //printf("Entered Second Loop\n"); 

      } 
     } 
    getch(); 
} 
関数を呼び出します

開始と終了の範囲を取得するために、2番目のforループの中に入れるべきコード

この最後の部分は、ディスプレイがforループ内に挿入することが可能ですが、それだけ表示1開始または指定した日付

if(strcmp(DS[i].Values[c].date, date)==0){ 
    printf("%s \t%.2f \t%.2f \t%.2f \t%.2f \t%.0f\n", DS[i].Values[c].date, DS[i].Values[c].open, DS[i].Values[c].high, DS[i].Values[c].low, DS[i].Values[c].close, DS[i].Values[c].volume); 
    printf("\n"); 
} 
+1

cでパラメータとして配列を渡すことはできません。 –

答えて

0

さてあなたはC.To研究に機能上で動作し、いくつかのチュートリアルに従わなければなりません。 ここであなたが書く:すべての

void OneStock_ManyDailyData(struct company DS[30], Symbol code, StrDate start, StrDate end) 

まずC.You内のパラメータはarray.So

void OneStock_ManyDailyData(struct company* ds, Symbol code, StrDate start, StrDate end) 

何の先頭のポインタを渡すために持っているとして、あなたは、配列を渡すことはできませんここでは配列の最初の要素のポインタを渡すことです(これはCで行います) これでds [30]を反復処理する必要があります。これを行うには関数にも要素があるので、反復はどこで停止するかを知っています。 また、反復のステップがどれほど大きいかを知る必要があります。この場合、通常はsizeof(our_element)で見つけることができます。

反復は、このように書きます:

void iterate_ds(struct company* ds , int elements , ... , ...) 
{ 
    int i; 
    for (i = 0 , i < 30 , i ++) 
    { 
     do_what_you_want(ds[i]); 
    } 
} 

私は私はあなたがチェックして一緒に別の反復を持っていると思う.Howeverあなたはdo_what_you_want(ds[i]);に持っているものと言うことはできませんので、あなたは私にあなたの構造体の構造を提供していません。 ds配列に対して行ったようにパラメータを渡すことで、何かを行うことができます。 私はこれが助けてくれることを願っています:)

PS:Pointersは私たちがC言語の関数で渡したもので、pointerは作成した要素が存在するアドレスを保持する整数です。

関連する問題