我的C ++迭代将无法正常运行

时间:2014-10-11 00:05:01

标签: c++

所以我试图获取一堆数字,然后在我的C ++控制台应用程序中按升序打印它们。这是代码。

void test_compare()
{
    int amount;
    amount = 10;
    double num[amount];
    double dummy[amount];
    double smallest;
    int i;
    int inside_iterator;
    for(i=0;i<amount;i++)
    {
        cout << "Number " << i+1 << ": ";
        num[i] = get_double();
        cout << endl;
    }
    for(i=0;i<amount;i++)
    {
        for(inside_iterator=i;inside_iterator<amount;inside_iterator++)
        {
            if (inside_iterator == i)
            {
                smallest = num[inside_iterator];
            }
            else
            {
                if (num[inside_iterator] < smallest)
                {
                    smallest = num[inside_iterator];
                }
            }
        }
        dummy[i] = smallest;
    }
    for(i=0;i<amount;i++)
    {
        cout << endl << dummy[i] << endl;
    }
}

我知道,这是一个满口的...... 但是当我运行它时,它会输出最后一个数字。我做了一些尝试找到问题的痕迹,但没有出现。

感谢任何有帮助的人。

1 个答案:

答案 0 :(得分:0)

试试这个。您需要交换&#34; if(num [inside_iterator]&lt; smallest)&#34;

内的值
int main()
{
        int amount;
    amount = 10;
    double num[amount];
    double dummy[amount];
    double smallest;
    int i;
    int inside_iterator;
    for(i=0;i<amount;i++)
    {
        cout << "Number " << i+1 << ": ";
        num[i] = get_double();
        cout << endl;
    }
    for(i=0;i<amount;i++)
    {
        for(inside_iterator=i;inside_iterator<amount;inside_iterator++)
        {
            if (inside_iterator == i)
            {
                smallest = num[inside_iterator];
            }
            else
            {
                if (num[inside_iterator] < smallest)
                {
                    double tmp = smallest;
                    smallest = num[inside_iterator];
                    num[inside_iterator] = tmp;
                }
            }
        }
        dummy[i] = smallest;
    }
    for(i=0;i<amount;i++)
    {
        cout << dummy[i] << endl;
    }

    return 0;
}