数组1D我需要让用户检查索引和打印值

时间:2017-11-19 12:44:27

标签: c++ arrays

我必须向用户询问一个数字并检查数字中是否存在该数字我是否编写了我的代码但它似乎没有工作我们不允许使用查找功能或其他任何其他功能内置功能,因为我们还没有在课堂上教过这些。以下是我的任务中的确切问题以及我之前编写的代码。

`l= [13, 99, 6, 76, 11, 83, 27, 84, 28, 67, 66, 22, 96, 46, 63, 21, 65, 48, 8, 14 , 84, 22, 28, 11, 83, 87, 11, 76, 6,83,27]`

问题:编写一个程序来搜索数组中的给定元素。

#include <iostream>
using namespace std;

int main() {

    int x;
    int i, j;
    int array[31] = {13, 99, 6, 76, 11, 83, 27, 84, 28, 67, 66, 22, 96, 46, 63, 21, 65, 48, 8, 14 , 84, 22, 28, 11, 83, 87, 11, 76, 6, 83, 27};

    for(i = 0; i <= 31; i++){
        for( j = 0; j <= 
            cout << "enter the number to locate in array";
            cin >> x; 

            if(array[i] == x){
                cout << x << "found at [" << i << "]" << "\n";
            }       
            else{   
                cout << "the number was not found in the array" << endl;
            }
        }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

作为一个简单的例子,你可以声明一个boolean变量,所以如果值至少找到一次,那么在循环内,然后分配它true否则如果循环返回并且找不到值,则通知用户搜索未找到。

此外,您不需要内循环只有一个循环,并在循环外输入搜索值。

此外,如果您需要字符串文本中的字符串注释标记,则必须在其前面加上反斜杠:&#34; Hello there \&#34;你好吗?&#34;否则编译器认为字符串以第一个双引号逗号结束:&#34; Hello there&#34;然后how are you未声明的标识符。

该程序可能如下所示:

int x;
bool isFound  = false;
int array[31] = {13, 99, 6, 76, 11, 83, 27, 84, 28, 67, 66, 22, 96, 46, 63, 21, 65, 48, 8, 14 , 84, 22, 28, 11, 83, 87, 11, 76, 6, 83, 27};

cout << "enter the number to locate in array";
cin >> x;

for(int i = 0; i < 31; i++){ //here: don't write i <= 31
    if(array[i] == x){
        isFound = true;
        cout << x << " found at: " << i << endl;
    }
}

if(!isFound)
    cout << "The value doesn't exist in the array!" << endl;
  • 数组从0n - 1而不是n编入索引,所以如果你写array[n]Undefined behavior因为内存不属于它。