Если у вектора хотя бы один компонент меньше, чем -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(), которая ожидает нажатия клавиши.