Индекс максимального элемента динамического массива (отладить код) - C (СИ)
Формулировка задачи:
Здравствуйте. Программа некорректно считает индекс массива (вместо индекса максимального элемента выводит индекс последнего элемента) подскажите, что не так? Заранее спасибо.
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int *t; int i,n,max, index; printf("\n n="); scanf("%d", &n); t=(int *)malloc(n*sizeof(int)); printf("Posledovatelnost:\n "); for ( i=0; i<n; i++) {printf("x[%d]=",i); scanf("%d", &t[i]);} max=t[0]; index=0; for(i=0;i<n;i++) {if (max<t[i]) max=t[i]; index=i;} printf("max = %d index = %d\n", max, index); free(t); getch(); }
Решение задачи: «Индекс максимального элемента динамического массива (отладить код)»
textual
Листинг программы
for(i=0; i<n; i++) { if (max<t[i]) { max=t[i]; index=i; } }
Объяснение кода листинга программы
- Переменная
i
инициализируется значением 0. - Цикл
for
начинается, который выполняетсяn
раз. - Внутри цикла проверяется условие
if (max<t[i])
. - Если условие истинно, то выполняется блок кода внутри фигурных скобок:
- Переменная
max
присваивается значениеt[i]
. - Переменная
index
присваивается значениеi
.
- Переменная
- После выполнения блока кода выполняется инкремент переменной
i
на 1. - Цикл продолжается до тех пор, пока условие
if (max<t[i])
не станет ложным. - После окончания цикла, переменная
max
содержит максимальное значение элемента динамического массиваt
. - Переменная
index
содержит индекс элемента массиваt
, который имеет максимальное значение. Ответ: В данном коде находится индекс максимального элемента динамического массиваt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д