Подскажите в чем ошибка в коде - C (СИ)
Формулировка задачи:
переменная pz должна выводить произведение четных индексов массива ar
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- int main()
- {
- int i,j,max,p,pz;
- int ar[4];
- for(i=0;i<4;i++)
- ar[i]=rand()%10+0;
- for(i=0;i<4;i++)
- printf("ar->[%2i]=%i\n",i,ar[i]);
- for(i=0;i<4;i++)
- if(ar[i]>max)
- {for(i=0;i<4;i++)
- max=ar[i];
- p=i;
- }
- for(i=0;i<4;i++)
- if (i % 2 ==1)
- {
- for(i=0;i<3;i++)
- pz= i * pz;
- printf("pz = %d\n", pz);
- }
- return 0;
- }
Решение задачи: «Подскажите в чем ошибка в коде»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- int main()
- {
- int i,j,max,p,pz;
- int ar[4];
- max=0; //необходимо обнулить
- pz=1; //инициализировать единицей, т.к. планируется перемножение
- for(i=0;i<4;i++)
- ar[i]=rand()%10;
- for(i=0;i<4;i++)
- printf("ar->[%2d]=%d\n",i,ar[i]);
- for(i=0;i<4;i++)
- if(ar[i]>max)
- {
- max=ar[i];
- p=i;
- }
- for(i=0;i<4;i++)
- if (i % 2 == 0)
- {
- pz= ar[i] * pz; //ar[i] вместо i
- }
- printf("pz = %4d\n", pz);
- printf("Max = %4d\n",max);
- return 0;
- }
Объяснение кода листинга программы
- Объявлены переменные:
- i, j, max, p, pz (тип int)
- ar[4] (массив из 4 элементов типа int)
- Переменная max инициализируется значением 0, а pz - единицей.
- С помощью цикла for заполняется массив ar случайными числами от 0 до 9.
- С помощью двух циклов for выводятся значения массива ar.
- С помощью двух условий if находится максимальное значение в массиве ar и его индекс, а также обновляется значение переменной pz.
- С помощью цикла for и условия if производится перемножение четных элементов массива ar и значение переменной pz.
- Выводятся значения переменных pz и max.
- Функция main() возвращает 0, заканчивая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д