确保在数组中输入并存储唯一的输入
Ensure unique input is entered and stored in an array
这个程序可以吗,或者可以改进(但很简单)吗?如何确保没有重复输入数字?
int n;
int array[9];
cout<<"Enter Number Between 9-0 Only"<<endl;
for(int i = 0; i<=10; i++){
cout<<"Enter Number" <<(i+1)<<endl;
cin >> n;
if((n >= 0) && (n <=9)){
array[i]=n;
}
else{
cout<<"Numbers from 0-9 onlyn"<<endl;
break;
}
}
(编辑)完成,编译代码
要检查这些数字是否用于更高的性能,请尝试以下操作(使用Jack Radcliffe的工作代码):
#include <iostream>
using namespace std;
int main()
{
int n = 0;
int array[9] = {0};
bool isUsed[10] = {0};
for(int i = 0; i < 9; i++)
{
cout << "Enter Number " << (i + 1) << endl;
cin >> n;
if((n >= 0) && (n <= 9))
{
if (isUsed[n] == false)
{
array[i] = n;
isUsed[n] = true;
}
else
{
cout << "Number has already been used." << endl;
i--;
}
}
else
{
cout << "Numbers from 0-9 only." << endl;
i--;
}
}
return 0;
}
对于这种简单的代码来说,优化并不是完全必要的,但这似乎是一种练习,所以为什么不练习优化的代码呢?
虽然有两个突出的问题,但大部分都很好。
首先,您有一个大小为9的数组,但由于从0开始for循环并一直到10,因此您将接受11个数字。
其次,由于您有它,所以如果输入的数字不在0和9之间(包括0和9),for循环将中断。这意味着,如果输入了无效数字,则将少于9个数字放入数组。改变整个循环来阅读这个,你应该很好:
for(int i = 0; i < 9; i++) {
cout << "Enter Number " << (i + 1) << endl;
cin >> n;
if((n >= 0) && (n <= 9))
array[i] = n;
else {
cout << "Numbers from 0-9 onlyn" << endl;
i--;
}
}
整个fire部分是对的,但我去掉了else语句中的break,并添加了I-。我补充说,在这样的情况下,当用户被提示重新输入号码时,输入号码将位于正确的索引处。
我希望这会有所帮助。
相关文章:
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 创建一个数组,以允许用户输入存储并稍后在代码中使用
- 如何将用户输入存储在数组中?
- 如何将控制台的输入存储到 wchar_t 变量?
- 是否可以将来自 Win32 EDIT 控件的文本输入存储在C++ std::string 中?
- 如何使用指针将用户输入存储到向量中
- 更改GTK ::输入存储在特定变量中的颜色
- 使用 Getline C++ 将每一行输入存储在数组中
- 根据用户输入存储多个数组
- 如何将用户输入存储在变量中,该变量与默认构造函数中的变量初始化中的值不同
- 将多个输入存储到数组中
- 如何将多个输入存储到列表C++中
- 将用户输入存储到2D数组中时要覆盖的值
- 如何将用户字符串输入存储在数组中,C++
- 将输入存储到数组C++中
- 努力创建一个函数,将用户输入存储到任意选择的向量(使用c++)
- 是否有可能在每次while循环迭代后将用户输入存储在一个新变量中?
- 如何将用户输入存储到多维数组中?我正在使用 3D 阵列
- 用户输入存储在整型数组中的值c++
- 关于将输入存储到字符串中,并使用cout来显示它