离散数学到c ++

时间:2013-03-24 23:49:58

标签: c++ discrete-mathematics

我不确定我应该在这里或在数学网站上询问,但我会在这里试一试。下面是作业:用户输入10个数字,即域 D 。我需要评估声明: For All x, y in D, x<y or y <2x 的。我的问题是什么是x,什么是y? 如果我输入1 2 3 4 5 6 7 8 9 10,因为域x = 1,y = 2,依此类推?我是否检查1&lt; 2 || 2&lt; 2(1)?

我编写了另外三个只使用'x'但没有输入10个数字的线索,这个数字是x,哪个是y。并且它不会要求用户输入x和y只有十个整数。

我会发布我所做的其他陈述的代码。

using std::cout;
using std::cin;

void ASearch(int arr[], int);
void BSearch(int array[], int size);
void CSearch(int array[], int size);

int main(int argc, const char * argv[])
{
    const int SIZE = 10;
    int NumArray[10];
    int num = 0;
    int count = 0;

    while (count < 10)
    {
        cout << "Enter Number "<< count + 1 <<": ";
        cin >> NumArray[count];
        ++count;

    }

    /*if(!isdigit(num))
     {

     for (int i = 0; i < 9; ++i)
     {

     cout << "Enter Number "<< i + 2 <<": ";
     cin >> NumArray[i];

     }
     }else cout << "Error: numbers only";*/

    for(int j = 0; j < SIZE; ++j)
    {
        cout << " " << NumArray[j];
    }

    ASearch(NumArray, SIZE);
    BSearch(NumArray, SIZE);
    CSearch(NumArray, SIZE);


    return 0;
}

void ASearch(int arr[], int size)
{
    int pos = 0;
    int on = -1;
    int oddTrue = 0;
    int oddFalse = 0;

    while (on == -1 && pos < size)
    {
        cout << " \nchecking: " << arr[pos];

        if (arr[pos] % 2 != 0 && arr[pos] > 0)
        {

            cout <<"\nTrue: " <<arr[pos] << " is > 0 and odd";
            ++oddTrue;

        }
        else if(arr[pos] % 2 != 0 && arr[pos] < 0)
        {
            cout <<"\nFalse" << arr[pos] << "is < 0 and odd";
            ++oddFalse;

        }
        else cout << "\nNumber is even";
        ++pos;


    }
    if (oddFalse > 0) cout<< "\n>>>>>>>>>A is FALSE";else cout <<"\n>>>>>>A IS TRUE";
    return;
}

void BSearch(int array[], int size)
{
    int on = -1;
    int pos = 0;
    int count = 0;

    while(on == -1 && pos < size)
    {
        cout << "\n checking "<<array[pos];

        if(array[pos] % 2 != 0  && array[pos] > 10)
        {
            cout << "\nTrue: " << array[pos] <<" is > 10 & odd";
            ++count;

        }else
        {
            cout <<"\nFalse";
            --count;
        }
        ++pos;
    }
    if(count > 1 ) cout << "\n>>>>>>>>>>B IS TRUE"; else cout <<"\n>>>>>>>>>B IS FALSE";
    return;
}


void CSearch(int array[], int size)
{
    int pos = 0;
    int on = -1;
    int TrueCount = 0;
    int FalseCount = 0;

    while (on == -1 && pos < size)
    {
        cout << "\n checking "<<array[pos];

        if(array[pos] % 2 == 0  || array[pos] % 3 == 0)
        {
            cout << "\nTrue: " << array[pos] <<" is divisible by 2 or 3";
            ++TrueCount;

        }
        else if(array[pos] % 2 != 0  || array[pos] % 3 != 0)
        {
            cout <<"\nFalse";
            ++FalseCount;
        }
        ++pos;

    }

    if (TrueCount < 10)
        cout << "\n>>>>C is FALSE"; else cout << "\n>>>>>>>>>>C is TRUE";

}

1 个答案:

答案 0 :(得分:2)

这意味着x和y都可以采用集合D中的每个值。

在伪代码中:

for i = 1:10
   for j = 1:10
       x = D[i]
       y = D[j]
       test x < y OR y < 2 * x
   loop
loop