2017-11-17 18 views
-1

Hilfe, wie alle drucken mit in einem bestimmten Start- und EndeDruckdaten mit gibt Anfang und am Ende

erste ist dies die Funktion in Haupt

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"); 
} 

dies der Funktion

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(); 
} 
ruft

Welche Codes sollten in die 2. for Schleife eingefügt werden, um den Bereich von Anfang und Ende zu erhalten

dieser letzte Teil ist Displays innerhalb der for-Schleife eingeführt werden kann, aber es nur Anzeige 1 Start- oder bestimmten Datum

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

Sie können ein Array nicht als Parameter in c übergeben. –

Antwort

0

Nun, Sie haben auf Funktionen in C.To Studie zu arbeiten und einige Tutorials folgen. Hier Sie schreiben:

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

allererst Sie kein Array als Parameter in C.You haben passieren können einen Zeiger von dem Start des array.So

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

passieren Was wir tun hier ist, einen Zeiger für das erste Element des Arrays zu übergeben (das ist, was wir in C tun) Jetzt müssen Sie die ds [30] iterieren. Dazu müssen wir zu der Funktion auch die Anzahl der sagen Elemente, also wo die Iteration weiß, wo sie aufhören soll. Wir müssen auch wissen, wie groß der Schritt der Iteration ist, in diesem Fall und in der Regel können wir es durch sizeof(our_element) finden.

Iteration geht so:

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

Sie geben mir nicht die Struktur Ihrer Struktur, so kann ich nicht sagen, was Sie in do_what_you_want(ds[i]); .Allerdings habe ich glaube, Sie weitere Iteration neben mit Kontrolle haben könnte oder was auch immer, indem wir die Parameter wie bei ds array übergeben. Ich hoffe das hilft :)

PS: Zeiger ist, was wir in Funktionen in C übergeben und Zeiger ist nur eine ganze Zahl, die die Adresse enthält, wo das Element, das wir erstellt haben, liegt.

Verwandte Themen