Если у вектора хотя бы один компонент меньше, чем -2, то все отрицательные компоненты заменить их квадратами - C (СИ)
Формулировка задачи:
Дан вектор A(n). Если у вектора A=(a1, a2,...,an) хотя бы один компонент меньше, чем -2, то все отрицательные компоненты заменить их квадратами, оставив все остальные без изменения. В противном случае вектор A умножить на 0.1.
не могу умножить вектор на 0,1. Или умножает все положительные на 0,1, а отрицательный заменяет квадратами или вообще всё умножает на 0,1.
Вот мои наработки
# include <stdio.h> # include <conio.h> # include <math.h> void main(void) { clrscr(); float a[10]; float i,n,s; printf ("vvedite razmernost massiva"); scanf("%f",&n); printf("vvedite elementu massiva:"); for (i=0; i<n; i++) { scanf("%f",&a[i]);} for (i=0; i<n; i++) { if (a[i]<=-2) { a[i]=a[i]*a[i]; } } for (i=0;i<n;i++) { printf("%f ", a[i]);} getch(); }
Решение задачи: «Если у вектора хотя бы один компонент меньше, чем -2, то все отрицательные компоненты заменить их квадратами»
textual
Листинг программы
# include <stdio.h> # include <conio.h> int main(){ float a[10]; float n,s; int i; bool x = false; printf ("vvedite razmernost massiva: "); scanf("%f",&n); printf("vvedite elementu massiva: "); for (i=0; i<n; i++){ scanf("%f",&a[i]); if(a[i] <= -2){ a[i] *= a[i]; x = true; } } if(x == true){ for (i=0;i<n;i++) printf("%f ", a[i]); } else{ for (i=0;i<n;i++) printf("%f ", a[i] * 0.1); } getch(); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
a
- массив из 10 элементов типаfloat
, который будет содержать числа;n
- переменная типаint
, которая будет содержать количество элементов в массиве;s
- переменная типаfloat
, которая будет использоваться для хранения промежуточных результатов.
- Задается вопрос пользователю о вводе размера массива.
- Введенный размер массива сохраняется в переменной
n
. - Пользователю предлагается ввести элементы массива.
- В цикле
for
происходит:- Считывание элемента массива с помощью функции
scanf()
. - Проверка на то, что элемент меньше или равен -2.
- Если условие выполняется, то элемент умножается на себя и переменная
x
меняется наtrue
.
- Считывание элемента массива с помощью функции
- После завершения цикла проверяется значение переменной
x
. - Если
x
равноtrue
, то выводятся все элементы массива. - Если
x
равноfalse
, то выводятся элементы массива, умноженные на 0.1. - Код завершается с помощью функции
getch()
, которая ожидает нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д