Đề trên codelearn.

if (i!=0&&i!=arr.size()-1) {
a = true;
for (int j = i-1; j>=0;j--) {
sumxuoi+= arr[j];
}
for (int k = i+1; k <arr.size(); k++) {
sumnguoc += arr[k];
}
}
cout << boolalpha;
if (sumxuoi==sumnguoc&&a) {
cout << "\n" << a;
cout << "\n" << i;
cout << endl;
cout << sumxuoi << " " << sumnguoc << " ";
}
}
- Bộ test là mảng arr {1,2,3}
- Cho em hỏi phần này của đoạn code của em thì tại sao i ==2 == arr.size() - 1 compliler vẫn cho vô lệnh if ạ ? Trong khi em đã if (i!= arr.size() -1&&i!=0) rồi ạ?
#include <iostream>
#include <vector>
using namespace std;
void beautifulArray(std::vector<int> arr)
{
//if (arr.size()<=2) return false;
for (int i = 0; i < arr.size();i++) {
int sumnguoc = 0;
int sumxuoi = 0;
bool a;
if (i!=0&&i!=arr.size()-1) {
a = true;
for (int j = i-1; j>=0;j--) {
sumxuoi+= arr[j];
}
for (int k = i+1; k <arr.size(); k++) {
sumnguoc += arr[k];
}
}
cout << boolalpha;
if (sumxuoi==sumnguoc&&a) {
cout << "\n" << a;
cout << "\n" << i;
cout << endl;
cout << sumxuoi << " " << sumnguoc << " ";
}
}
}
int main () {
int sl;
cout << "nhap so luong phan tu: ";
cin >> sl;
vector <int> a (sl);
for (int i = 0 ; i < a.size(); i ++) {
cin >> a[i];
}
beautifulArray (a);
system ("pause");
return 0;
}
Mọi người giải thích cho em với em cảm ơn.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?