我该如何在开关盒中放入循环,它也只能得到我输入的最后一个数字
switch(choose)
{
case 1:
cout << "How many number you want to input? ";
cin >> num;
for (int i = 1; i <= num; i++)
{
cout << "Input a number" << "(" << i << "): ";
cin >> choose;
}
root = Insert(root, choose);
cout<<"\nElements in data are:";
Inorder(root);
break;
答案 0 :(得分:2)
您需要移动
root = Insert(root, choose);
在for
循环内。
for (int i = 1; i <= num; i++)
{
cout << "Input a number" << "(" << i << "): ";
cin >> choose;
root = Insert(root, choose);
}
创建一个函数以读取数字并将其添加到列表中。
在case
子句下调用该函数。
switch(choose)
{
case 1:
root = readInput(root);
break;
假设root
的类型为Node*
,
Node* readInput(Node* root)
{
cout << "How many number you want to input? ";
cin >> num;
for (int i = 1; i <= num; i++)
{
cout << "Input a number" << "(" << i << "): ";
cin >> choose;
}
root = Insert(root, choose);
cout<<"\nElements in data are:";
Inorder(root);
return root;
}
答案 1 :(得分:0)
仅在for循环完成后才插入,这意味着您只会插入一次。您需要在for循环中使用Insert()。