Программа работы с массивами, нужно найти ошибку - C (СИ)
Формулировка задачи:
В массивах х[10] и y[13] перемножить положительные элементы, а отрицательные увеличить на 2. После преобразований вычислить число элементов, идущих после второго отрицательного элемента массива.
Вывести на экран для каждого массива: элементы массива в строку(кол-во элементов в строке на экране выбрать самостоятельно) до и после преобразований, найденное число элементов.
Формулы представлены в коде, так что смысла их переписывать не вижу, помогите пожалуйста найти ошибку
#include <stdio.h> #include <math.h> #include <malloc.h> int main(){ int *x; //указатель на массив int *y; x=(int*)malloc(10*sizeof(int));// рассчитываем размер массива и выделяем память y=(int*)malloc(13*sizeof(int)); float umX=0.0; float umY=0.0; int NegNumXCounter = 0; int NegNumYCounter = 0; int j,i,sumX,sumY,NegNumLimit=2; for (j=0;j<10;j++){ x[j]=cos(tan(j)*(j))+(1.0/4); printf("\n Massiv X do preobrazovaniya %d ",x[j]); // выводим массив до преобразования if(x[j>=0]){ umX *= x[j]; // перемножаем положительные элементы } else x[j]=x[j]+2; // увеличиваем отрицательные элементы на 2 if(NegNumXCounter>=NegNumLimit){ sumX+=x[j]; } if(x[j]<0.0){ NegNumXCounter++; } printf("\n Massiv X posle preobrazovaniya %d ",x[j]); free(x); } for (i=0; i<13; i++){ y[i]=(i % 2 ? -1 : 1)* sin(fabs(j-(sqrt(fabs(j)))))(j-j/(j*j+3.6)); //формула выч-ия y printf("\n Massiv Y do preobrazovaniya %d ",x[i]); if(y[i>=0]){ umY *= y[i]; } else y[i]=y[i]+2; if (NegNumYCounter>=NegNumLimit){ sumY+=y[i]; } if(y[i]<0.0){ NegNumYCounter++; printf("\n Massiv Y posle preobrazovaniya %d ",y[i]); //выводим массив после преобразования free(y); } printf("kol-vo otr elementov posle 2 otr\n", sumY, sumX); //выводим кол-во элементов } getchar(); getchar(); return 0; }
Решение задачи: «Программа работы с массивами, нужно найти ошибку»
textual
Листинг программы
if (x[j] >= 0) {
Объяснение кода листинга программы
- Проверяется условие: x[j] >= 0.
- Если условие выполняется, то выполняется блок кода внутри фигурных скобок.
- В данном случае, в блоке кода нет никаких действий, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
- Оператор в данном случае отсутствует, поэтому происходит пропуск и переход к следующему оператору.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д