zeigen Also im Grunde möchte ich Nummer in Datei sortieren. so dass ich zuerst lesensortierende Struktur in C kann Ausgabeergebnis in VS2017 nicht zeigen, aber in CodeBlocks
for (int i = 0; i < count; i++) {
fscanf(read_file, "%d %s %d %s\n", &custid_temp[i].id, custid_temp[i].name, &custid_temp[i].reward_point, custid_temp[i].promo);
printf("%d %s %d %s\n", custid_temp[i].id, custid_temp[i].name, custid_temp[i].reward_point, custid_temp[i].promo);
}
die Datei bestehen aus dieser:
1 Test 200 WELCOME2017
2 James 700 WELCOME2017
Sehen Sie es die Punkte ist, 200 und 700 in Dateien, ich will aufsteigend sortieren (der größten zur kleinsten) werden wie dies:
2 James 700 WELCOME2017
1 Test 200 WELCOME2017
Also werde ich die Datei mit dieser Funktion sortieren:
for (int i = 0; i<count+1; i++)
{
for (int j = 0; j<count - i; j++)
{
if (custid[j].reward_point <custid[j + 1].reward_point)
{
struct customer temp_sort = custid[j];
custid[j] = custid[j + 1];
custid[j + 1] = temp_sort;
}
}
}
drucken
Und schließlich die aktualisierte Struktur:
for (int i = 0; i < count; i++) {
printf("%d %s %d %s\n", custid[i].id, custid[i].name, custid[i].reward_point, custid[i].promo);
}
Das Ergebnis ist dieses (VS2017):
1 Test 200 WELCOME2017
2 James 700 WELCOME2017
0 0
0 0
Das Ergebnis ist dieser (Codeblock):
1 Test 200 WELCOME2017
2 James 700 WELCOME2017
2 James 700 WELCOME2017
1 Test 200 WELCOME2017
Process returned 2 (0x2) execution time : 0.015 s
Press any key to continue.
Wie zwei kommen Compiler produziert 2 verschiedene Ergebnisse, sogar mit dem gleichen Code, gibt es eine Lösung dafür auf VS2017 zu arbeiten?
Danke für die Zeit sowieso.
Der Debugger ist dein Freund. – Olaf
'custid [j + 1]' gilt außerhalb der Grenzen. – BLUEPIXY
Visual Studio und CodeBlocks sind IDEs, keine Compiler. Visual Studio verwendet entweder "cl.exe" von Microsoft oder eine modifizierte Version von Clang. CodeBlocks können eine Vielzahl von Compilern AFAIK unterstützen. – InternetAussie