Онлайн компилятор C

#include <stdio.h> int main() { int SIZE = 10; int A[SIZE]; int i; int max_idx, max_val, min_idx, min_val; for (i = 0; i < SIZE; i++) { scanf("%d", &A[i]); } max_val = A[0]; min_val = A[0]; max_idx=0; min_idx=0; for (i = 1; i < SIZE; i++) { if (A[i] > max_val) { max_val = A[i]; max_idx = i + 1; } if (A[i] < min_val) { min_val = A[i]; min_idx = i + 1; } } printf("%d %d %d %d", max_idx, max_val, min_idx, min_val); return 0; }
Этот код находит максимальный и минимальный элементы массива и их индексы (начиная с 1), но есть неточность в логике обновления индексов.

- Индексы max_idx и min_idx обновляются только внутри условий, но начальные значения (0) не соответствуют формату вывода (нумерация с 1). Если максимум или минимум находится на первой позиции, индекс останется 0, а не 1.
- Внутри цикла вы присваиваете max_idx = i + 1 и min_idx = i + 1, но начальные значения заданы как 0. Подумайте, как сделать так, чтобы для первого элемента индекс тоже был 1.