2017-07-28 2 views
-2

Ich bin ein Student, und ich versuche, das letzte Stück Code auf meinem Auftrag arbeiten zu bekommen. Das wurde millionenfach gefragt, aber ich konnte keine Lösung finden, die für mich funktioniert. Ich kann nur die letzte Position des Arrays abrufen, um zu drucken, wenn ich dieses Programm ausführe. Ich kann keine Abkürzungen verwenden (Vektoren, Maxelement(), usw.). Kann jemand helfen?Ich möchte Position, aber ich bekomme Ncols und Nrows von Array

#define inputfile "C:\\C_txt_files\\wind.txt" 

int i, j, nrows, ncols; 
double wind_max, wind_min, wind_array[12][5], index_minmonth=0, 
     index_minyear=0, index_maxmonth=0, index_maxyear=0; 

fscanf(wind, "%d %d", &nrows, &ncols); 

/*Find Min and Max, and Compute average for each row. Locate Min and Max*/ 
wind_min = wind_array[0][0]; 
wind_max = wind_array[0][0]; 
for(i=0; i<nrows; i++) 
{ 
for(j=0; j<ncols; j++) 
{ 
    if(wind_array[i][j]<wind_min) 
     wind_min = wind_array[i][j]; 
     index_minmonth = i; 
     index_minyear = j; 
    if(wind_array[i][j]>wind_max) 
     wind_max = wind_array[i][j]; 
     index_maxmonth = i; 
     index_maxyear = j;  
} 
} 
index_minmonth += 1; 
index_minyear += 1; 
index_maxmonth += 1; 
index_maxyear += 1; 
printf("Minimum speed is %2.0f mph in month %2.0f, year %1.0f.\n", wind_min, 
     index_minmonth, index_minyear); 
printf("Maximum speed is %2.0f mph in month %2.0f, year %1.0f.", wind_max, 
     index_maxmonth, index_maxyear); 

Dies ist, was druckt: Mindestgeschwindigkeit 5 Meilen pro Stunde in Monat 12, Jahr 5. Höchstgeschwindigkeit beträgt 12 Meilen pro Stunde in Monat 12, Jahr 5.

+3

Sie benötigen '{}' für if-body. – BLUEPIXY

+0

fscanf (Wind, "% d% d", & nrows, & ncols); Ich lese eine Datei. Ich habe vergessen, diesen Code hinzuzufügen. – drewsefer

+0

Die Einrückung für Ihre 'if'-Anweisungen stimmt nicht mit der Art überein, wie der Compiler den Code liest. Fügen Sie Klammern um den Körper der 'if' Anweisung hinzu. C ist * nicht * Python. –

Antwort

1

Sie haben die Variablen initialiaze nrows und ncols. Ansonsten arbeiten Sie mit Müllwerten.

Auch müssen Sie {} in Schleife Körper.

Andernfalls ändert es nur seinen Wert jedes Mal und Sie gelangen zum Index des letzten Elements.

* Später OP erwähnte über das Lesen von Datei. Daher wird der Initialisierungsteil nicht benötigt, da er von der Datei selbst liest.

+0

Danke! Das war es, was ich vermisste. – drewsefer

+0

@drewsfer .: Wenn diese Antwort Ihnen geholfen hat, können Sie meine Antwort (die richtige Markierung neben Antwort) auswählen .. es würde zukünftigen Benutzern helfen. – coderredoc

0

Ich denke, das Problem ist, dass der Umfang falsch ist, wenn Sie "wenn" verwenden.

Verwandte Themen