Подскажите в чем ошибка в коде - 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, заканчивая работу программы.