所以我试图获取一堆数字,然后在我的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;
}
}
我知道,这是一个满口的...... 但是当我运行它时,它会输出最后一个数字。我做了一些尝试找到问题的痕迹,但没有出现。
感谢任何有帮助的人。
答案 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;
}