Индекс максимального элемента динамического массива (отладить код) - 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.