помогите найти ошибку в программе на с++ задача и моя программа прикреплены. вроде всё правильно, но при вводе как в примере, у меня выходит "yes" вместо "no"
В С++ насколько я помню, сначала нужно инициализировать переменную, а потом уже создавать динамический массив. То есть первые 2 строчки будут выглядеть:
int n, i;
cin >> n;
int* a = new int[n];
И также советую в одном цикле от 0 до n (как на скриншоте) проинициализировать массив числами, а уже после него, во втором цикле от 0 до n-1 (не включая n-1), проверять соседние числа.
1 votes Thanks 1
a245
можете показать как надо проинициализировать массив числами и как проверять соседние числа
int main() { int n; cin >> n; int* a = new int[n]; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n - 1; i++) { if (a[i] * a[i + 1] >= 0) { cout << "YES"; return 0; } } cout << "NO"; }
Answers & Comments
В С++ насколько я помню, сначала нужно инициализировать переменную, а потом уже создавать динамический массив. То есть первые 2 строчки будут выглядеть:
int n, i;
cin >> n;
int* a = new int[n];
И также советую в одном цикле от 0 до n (как на скриншоте) проинициализировать массив числами, а уже после него, во втором цикле от 0 до n-1 (не включая n-1), проверять соседние числа.
using namespace std;
int main()
{
int n;
cin >> n;
int* a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n - 1; i++) {
if (a[i] * a[i + 1] >= 0) {
cout << "YES";
return 0;
}
}
cout << "NO";
}