Ошибка C4700 использована неинициализированная локальная переменная - C (СИ)
Формулировка задачи:
Не могу решить проблему в коде
Пишет Ошибка C4700 использована неинициализированная локальная переменная "i" (41 строка)
# include <stdio.h>
# include <math.h>
# include <malloc.h>
int otric (float *x);
int modul (float *x);
void main(void)
{
float *x,k;
int i,O,M;
x = (float *)malloc(33 * sizeof(float));
printf("Massiv X do preobrazovaniya:\n");
for (i = 0; i < 33; i++)
{
*(x + i) = pow(-1, i + 1)*sin(i*cos((16 - i) / (16 + i)));
printf("%13.4E", *(x + i));
if ((i + 1) % 6 == 0)
printf("\n");
}
O=otric(x);
printf("\n kol-vo otric elementov:%2d",O);
M=modul(x);
printf("\n summ:%7d",M);
free(x);
getchar();
}
int otric(float *x)
{
int i,k;
k=0;
for (i = 0; i < 33; i++)
{
if (*(x+i)<0)
++k;
}
return(k);
}
int modul (float *x)
{
int j,i,y,s=0;
j=fabs(*(x+i));
for (i=0;i<33;i++)
{
if(fabs(*(x+i))<j)
j=*(x+i);
y=i+1;
}
for (i=y;i<33;i++)
s+=*(x+i);
return(s);
}
вот задание
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
Количество отрицательных элементов массива
Сумму модулей элементов массива, расположенных после минимального по модулю элемента
Решение задачи: «Ошибка C4700 использована неинициализированная локальная переменная»
textual
Листинг программы
j = fabs(*x);
Объяснение кода листинга программы
- Входные данные: x (переменная типа double)
- Выполняется операция абсолютного значения (функция fabs)
- Результат сохраняется в переменной j (тип double)
- Значение переменной j:
j