он рассчитывает режим, но я хочу, чтобы он делал вывод «нет режима», если нет никакого повторения какого-либо числа. Я пробовал метод сравнения, но каждый раз, когда мне дают только 1 цифру массива, в то время как не предполагалось печатать только режим, это функция вычисления режима, мне нужно получить данные из txt-файла и отсортировать их, а затем вычислить режим
//calculating mode now
int num, count;
double max, mode;
for (int i = 0; i < numScores; i++){
if (num !=*(pscores+i) ){
num = *(pscores+i);
count = 1;
} else {
count++;
}
if (count > max){
max = count;
mode = num;
}
}
cout<<"Mode : "<<mode<<endl;
Вы никогда не инициализируете mode
кроме случаев, когда count > max
, Ваше условие if никогда не будет работать, потому что вы не инициализируете max
или. Предполагая, что ваше условие для «без режима», когда count <= max
Просто установите вокруг него еще и установите соответственно режим и макс.
//calculating mode now
int num = -1, count = 0;
double max = /* whatever */, mode = 0.0;
for (int i = 0; i < numScores; i++)
{
if (num !=*(pscores+i))
{
num = *(pscores+i);
count = 1;
}
else
count++;
if (count > max)
{
max = count;
mode = num;
/* maybe you want to break here? */
}
}
if (mode == 0.0) /* this is dangerous (mode might be 0.00000001 != 0.0) */
cout << "Mode: " << mode << endl;
else
cout << "Mode: no mode" << endl;
Других решений пока нет …