Code tìm max trong mảng bị sai kết quả

e mới học c++, a chị tìm lỗi hộ em với ạ
input 11 12 13
output 12
không tìm được max ạ

#include <iostream>
using namespace std;
int main()
{
    int i,x;
    int32_t a[10];
    for (i=1;i<3;i+=1)
    {
        cin >> a[i];
    }
    x=a[1];
    for (i=1;i<3;i+=1)
    {
        if (a[i]>x) {x=a[i];}
    }
    cout <<x;
    return 0;
}
for (i=1;i<3;i+=1)

for chỉ lặp được có 2 lần i = 1 và i = 2 còn i = 3 điều kiện i < 3 bị sai nên k lặp nữa.

Tức bạn chỉ nhập được có 11 và 12 thì max là 12 là đúng rồi. :kissing:

4 Likes

haha, tks bác ạ, có tới 2 vòng for liền, đợt e sửa 1 vòng for mà vẫn sai nên mới xóa dấu bằng đi
:sweat_smile::sweat_smile:

Nhắc thêm cái chuyện C/C++ không giống Pascal ở cái khoản mảng nữa chứ.
Chỉ số mảng bắt đầu từ 0.

4 Likes

Em học từ Pascal ở THPT qua C++ đó, đọc quen Pascal rồi, giờ sang C++ thấy dễ hiểu hơn nhưng mà cảm thấy C++ code rắc rối quá, các tài liệu trên mạng lại không có nhiều chi tiết bằng cô dạy trên lớp , nhất là đọc tài liệu trên mạng thấy lan man đại hải quá.

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