
Другие языки программирования и технологии
Поможете найти и исправить тут ошибку. (СИ программирование)
Не ищет правильно минимальное значение массива. Спасибо за ответ!


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 15
#define M 100
int main(void) {
int i, mx, mn;
double avg;
int x[N];
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) x[i] = rand() % M;
for (i = 0; i < N; ++i) printf("%4i", x[i]);
putchar('\n');
mx = mn = x[0];
for (i = 1; i < N; ++i) {
if (x[i] < mn) mn = x[i];
if (x[i] > mx) mx = x[i];
}
avg = (mx + mn) / 2.0;
printf(" max: %i\n min: %i\n average: %.1Lf", mx, mn, avg);
getchar();
return 0;
}
#include <stdlib.h>
#include <time.h>
#define N 15
#define M 100
int main(void) {
int i, mx, mn;
double avg;
int x[N];
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) x[i] = rand() % M;
for (i = 0; i < N; ++i) printf("%4i", x[i]);
putchar('\n');
mx = mn = x[0];
for (i = 1; i < N; ++i) {
if (x[i] < mn) mn = x[i];
if (x[i] > mx) mx = x[i];
}
avg = (mx + mn) / 2.0;
printf(" max: %i\n min: %i\n average: %.1Lf", mx, mn, avg);
getchar();
return 0;
}
Строка 27. У вас значение массива сравнивается с MIN, которое не определено и по-умолчанию равно 0.00. Ничто в массиве не будет меньше чем 0.00.
А крупнее фото или текст выложи
Михаил Куликов
Сделал
вы работаете в инте так что мин и макс можно в инт превратить и им задать НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
int MIN = INT_MAX, MAX = INT_MIN;
либо присвоить им значения первых элементов массива после заполнения
int MIN,MAX;
//filling
MIN = X[0]; MAX = X[0];
//search
а так у вас непонятный мусор в переменных и неизвестно как он соотносится с числом в массиве и выполнятся ли у вас когда либо ваши условия
ваш код в один прогон (компилил там же на чистом С)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#define a 15
int main()
{
srand(time(NULL));
float x[a];
float max, min;
for (int i = 0; i < a; i++)
{
x[i] = rand() % 100;
printf("Array[%d]: %f\r\n", i, x[i]);
if (i == 0) { min = x[0]; max = x[0]; continue; }
if (x[i] > max) max = x[i];
if (x[i] < min) min = x[i];
}
printf("max: %f; min: %f; e: %f\r\n", max, min, (max + min) / 2);
return 0;
}

int MIN = INT_MAX, MAX = INT_MIN;
либо присвоить им значения первых элементов массива после заполнения
int MIN,MAX;
//filling
MIN = X[0]; MAX = X[0];
//search
а так у вас непонятный мусор в переменных и неизвестно как он соотносится с числом в массиве и выполнятся ли у вас когда либо ваши условия
ваш код в один прогон (компилил там же на чистом С)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#define a 15
int main()
{
srand(time(NULL));
float x[a];
float max, min;
for (int i = 0; i < a; i++)
{
x[i] = rand() % 100;
printf("Array[%d]: %f\r\n", i, x[i]);
if (i == 0) { min = x[0]; max = x[0]; continue; }
if (x[i] > max) max = x[i];
if (x[i] < min) min = x[i];
}
printf("max: %f; min: %f; e: %f\r\n", max, min, (max + min) / 2);
return 0;
}

Похожие вопросы
- помогите найти и исправить ошибку в коде СИ
- по делфи прога нахождение квадратного корня( ошибка в проге) помогите найти и исправить
- помогите найти ошибку в коде на Си
- программирование C++. Помогите найти ошибку
- Помогите найти ошибку Си
- Помогите в паскале Исправить ошибку?
- Помогите найти ошибку в калькуляторе Си
- Помогите найти ошибку Delphi легкая программка
- Помогите найти ошибку в программе и исправить ее.
- (PASCAL)помогите найти ошибку в коде задачи, и исправить