Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерный массив
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Sensitive
Здравствуйте!
прошу помощи в задании:
Если вектор Х(Х1,Х2,...,Хm) имеет хоть один компонент,который меньше 2,то все отрицательные элементы заменить их квадратами, оставив все остальные без изменения, в противном случае вектор умножить на 0,1.
не знаю как это сделать...вот сделала, но не совсем по условиюsad.gif

#include<conio.h>
#include<iostream.h>
#include<math.h>
#include<stdio.h>
void main()
{clrscr();
const n=10;
int i;
double x[n],a[n];
cout<<"Vvedite massiv:\n";
for (i=0;i<=(n-1);i++)
{
cin>>x[i];
}
cout<<"Ishodniy massiv imeet vid:\n";
for (i=0;i<=(n-1);i++)
{
printf("%8g",x[i]);
}
for (i=0;i<=(n-1);i++)
{
if (x[i]<2) {
if (x[i]<0) {
x[i]=x[i]*x[i];}
else x[i]=x[i];}
else x[i]=x[i]*0.1;}
cout<<"\nPolu4enniy massiv:\n";
for (i=0;i<=(n-1);i++)
{
printf("%8g",x[i]);
}
getch();
}


Подскажите, пожалуйста.
volvo
Почти верно, только после ввода данных и их печати можно сделать так:

 // распечатали исходный массив
int found = 0; // был ли хоть один элемент < 2
for (i=0;i<=(n-1);i++) if(x[i] < 2) found = 1;

for(i=0; i < n; i++)
if(found) {
if(x[i] < 0) x[i] = x[i]*x[i];
}
else x[i] = 0.1 * x[i];

// печатаем полученный массив
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.