Mein Programm nimmt Name und Alter des Studenten und diese Funktion sollte den Namen des jüngsten, ältesten Studenten und des Durchschnittsalters drucken. Jedoch druckt es Name des jüngsten Kursteilnehmers kann niemand mir sagen, warum?Warum druckt mein Programm keine Zeichenfolge?
void check(string *nameStudent, int *ageStudent, int num) {
int i, young = 0, old = 0, sum = 0, mov = 0;
string a, b;
double average;
for (i = 0; i < num; i++){
if (*(ageStudent + mov) < young) {
young = *(ageStudent + mov);
a = *(nameStudent + mov);
}
if (*(ageStudent + mov) > old) {
old = *(ageStudent + mov);
b = *(nameStudent + mov);
}
sum += *(ageStudent + mov);
mov++;
}
average = (double) sum/num;
cout << a << " Is youngest student and " << b << " Is oldest student " << endl << average << " is average age of students";
}
Weil alle Schüler älter sind als '0'. – alcedine
Können Sie bitte versuchen, ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) zu erstellen und uns zu zeigen? Einschließlich * wie * Sie diese Funktion aufrufen und mit welchen Argumenten. –
FYI, '* (ageStudent + mov)' kann klarer geschrieben werden als 'ageStudent [mov]' – Barmar