51
исходит из строки:
maxVal=myArray[0];
В вашем цикле, чтобы попытаться найти самый большой элемент, который у вас есть:
for (j=0; j< 210; j++)
if (myArray[j] > maxVal){
myArray[i]=maxVal;
}
}
Однако это назначит maxVal
до myArray[i]
что не то, что вы хотите.Во-первых, вам нужно присвоить myArray[j]
, а не myArray[i]
, а во-вторых, вам нужно присвоить maxVal
большему значению.Поскольку maxVal=myArray[0];
- это единственный раз, когда вы присваиваете что-либо maxVal
, поэтому это 51
(значение ASCII символа 3
, которое является первым прочитанным символом).Вам нужно сделать что-то вроде:
if (myArray[j] > maxVal){
maxVal = myArray[j];
}
Я полагаю, вы хотели, чтобы myArray
был int[]
.Также лучший способ сделать это - вместо двух циклов for и цикла до EOF, цикл пока myFile >> myArray[i]
:
int myArray[210];
int i = 0;
//...
while (myFile >> myArray[i]) {
cout << myArray[i] << " ";
if (myArray[i] > maxVal) {
maxVal = myArray[i];
}
i++;
}
Какой для входного файла:
346 130 982 90 656 117 595
415 948 126 4 558 571 87 42
360 412 721 463 47 119 441
190 985 214 509 2 571 77 81
681 651 995 93 74 310 9 995
561 92 14 288 466 664 892 8
766 34 639 151 64 98 813 67 834 369
Возвращает:
995