PDA

Просмотр полной версии : проверка на функцию... С++



ociro
14.04.2009, 19:56
помогите плиз с алгоритмом...
Заданы ряд чисел для Х и Y... определить удовлетворяют ли элементы одномерных массивов X и Y свойству функции..
т.е например
1) X |1|2|3|4|5|
------------- данное выражение является функцией
Y |4|5|6|7|8| поскольку одному Х соответствует один Y
2) возможен другой вариант (попарный)
X |1|2|1|4|1|
------------- данное выражение так же является
Y |3|5|3|7|3| функцией одному Х соответствует один Y
3)
X |1|1|1|1|1|
------------- функция
Y |3|3|3|3|3|
4)
X |1|2|2|3|1|
------------- функция
Y |3|4|4|5|3|
в противном случае cout << "не функция\n";
прилагаю текст программы .. где изначально задаем диапазон X и Y и вводим кол-во элементов X(Y)
и попытка решения данной задачи..



#include <iostream>
using namespace std;

int main()
{
int x_min, x_max, y_min, y_max, n, i, j;
int X[50], Y[50];
cout << "enter quantity element in the multitade:\t";
cin >> n;
cout << "enter diapason meaning X:\t";
cin >> x_min >> x_max;
cout << "enter diapason meaning Y:\t";
cin >> y_min >> y_max;
cout << "Enter meaning of argument X:\t";
for (i=0; i<n; i++)
cin >> X[i];
cout << "Enter meaning of argument Y:\t";
for (i=0; i<n; i++)
cin >> Y[i];
for (i=0; i<n; i++)
if(X[i] < x_min || X[i] > x_max)
{
cout << "Error! Exit from diapason X...\n";
return 0;
}
for(j=0; j<n; j++)
if(Y[i] < y_min || Y[i] > y_max)
{
cout << "Error! Exit from diapason X...\n";
return 0;
}
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
if(X[i] == X[j] && Y[i] != Y[j])
{
cout << "function\n";
}
else
cout << "is not function\n";
return 0;

}


// заранее спасибо

airyashov
15.04.2009, 13:42
в чем собственно проблема?
например так


for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if(X[i] == X[j] && Y[i] != Y[j]){
cout << "is not function\n";
return 0;
}
cout << "is function\n";

ociro
15.04.2009, 20:35
спасибо мэн) что то не додумал я(