减去值时出错

时间:2014-03-10 18:35:53

标签: c++ visual-c++ c++11

我的减法有问题,输出应该是

1 5 13 16 17什么> 1 5 13 16 17

4 8 3 1 I> 4 8 3 1

4 5 2想> 5 2 1

1 3是> 2 1

2           right side >             1

但是你可以看到它的不同输出,你能告诉我哪里错了并且遗失了 我只需要一些提示或技巧。提前谢谢:)

这是我的代码:

#include <iostream>
#include <stdlib.h>

using namespace std;

int input[10];
int dif[10];
int fin;

int dami;
int space;

int i;
int j;
int b = 0;


int main()
{
cout << "Enter up to 10 numbers,max 10:\n";
cin >> dami;
if (dami > 10)
{
    cout << "Input exceeds limit try again\n";
    system("pause");
    system("CLS");
    main();
}
else
{
    cout << "Input Test Case:\n";
    for (i = 0; i <dami; i++)
    {
        cin >> input[i];

        if (input[i] > 100000)
        {
            cout << "\nInput exceeds limit";
            system("pause");
            system("CLS");
            main();
        }
    }

    cout << "\n";
    for (int z = 0; z < dami; z++)
    {
        cout << input[z] << "  ";   
    }
/*  for (space = 0; space < dami - i; ++space)
    {

        cout << " ";
    }*/
    cout << "\n";
    for (i = 0; i < dami; i++)
    {

        for (j = i; j < dami -1;j++)
        {
            //subtraction part
            dif[j] = input[j+1] - input[j];

                fin = dif[j+1] - dif[j];

                if (fin < 0)
                {
                    fin = fin * -1;
                }

                cout << " " << fin;

        }

        cout << "\n";

    }
}
cout << "\n";
system("pause");

}

1 个答案:

答案 0 :(得分:0)

首先,阅读您的用户输入,如果它是理智的,请将其放入数组中。

然后将输入数组及其包含的元素数传递给递归函数,如下所示:

void diff1(int items[], int count)
{
    if (count > 0)
    {
        for (int n=0; n<count; n++)
        {
            cout << items[n] << " ";
            items[n]=abs(items[n]-items[n+1]);
        }

        cout << "\n";
        diff1(items, --count);
    }
}

&amp;这是函数的a minimal implementation

(nb:我确定你可以找出你可能需要的任何花哨的缩进:p)