Cho dãy a gồm n số nguyên. Các số nguyên được đánh số thứ tự từ 1 đến n. Số thứ i có giá trị là ai. Hãy viết chương trình tìm kiểm tra trong dãy a có tồn tại đoạn con gồm các phần tử liên tiếp có tổng bằng s hay không? Ở bộ số: 10 16 8 2 13 27 4 9, đáng lẽ phải in ra 2 nhưng lại in ra 1???
#include <iostream>
using namespace std;
int main() {
int s, n,dem=0,tong=0,z=0,a[100];
cout << "Nhap N= ";
cin >> n;
cout << "Nhap s= ";
cin >> s;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
tong = a[i];
for (dem = i + 1; dem < n; dem++) {
if (tong==s){break;
};
tong = tong + a[dem];
if (tong == s)
{
z++;
break;
};
};
};
cout << z;
return 0;
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?