Кажется, я неправильно перебираю свой массив, он настроен так, чтобы запрашивать у пользователя список чисел, и я должен сравнивать его с другим числом, которое устанавливает пользователь.
#include <iostream>
using namespace std;
bool chk = true;
int main() {
/*
Write a program that asks the user to type 10 integers of an array and an integer s.
Then search the value s from the array and display the value of s if it is found in
the array otherwise print sorry not found..
*/
int userArray[10], i, greater = 0;
int s;
cout << "Enter a check number: \n";
cin >> s;
if (chk = true) {
//prompt for array list
for (i = 0; i < 9; i++) {
if (i == 0) {
cout << "Enter ten numbers: " << "\n";
cin >> userArray[i];
}
else {
cin >> userArray[i];
}
chk = false;
}
//loop through the array
for (int i = 0; i <= 10; i++) {
if (s = userArray[i]) {
//for testing
cout << userArray[i];
//cout << s;
}
else {
cout << "No match found!";
}
//I was just using this to pause the console and let me inspect result
cin >> greater;
return 0;
}
}
}
Я предполагаю, что следующий код находится там, где проблема. Идея состоит в том, чтобы установить s = 2, ввести в список чисел, а затем сравнить с s и вывести s, если есть совпадение, если нет. Когда я ввожу число, которое, как я знаю, совпадает с s, кажется, что оно печатает первое число в массиве, но я подумал, поскольку я перебираю числа по одному в цикле for, которые должны отображаться, когда он достигает нужного числа, а не когда это останавливается. заранее спасибо
//loop through the array
for (int i = 0; i <= 10; i++) {
if (s = userArray[i]) {
//for testing
cout << userArray[i];
//cout << s;
}
else {
cout << "No match found!";
}
Вы используете один знак равенства. Это настройка s
в userArray[i]
так что всегда оценивается как истина. Для сравнения используйте двойные знаки равенства, например:
if (s == userArray[i]) {...}
Кроме того, ваш return
оператор находится в вашем цикле (кредит @UnholySheep).
вы сравниваете с одним оператором присваивания =
вы должны использовать оператор равенства вместо ==
if (s = userArray[i])
с в цикле for является одним из примеров.
вы также делаете ту же ошибку в
if (chk = true)