Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерный массив
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
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];

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