Cần giúp đỡ tìm lỗi sai bài tìm phần tử lớn nhất trong mảng

Đề bài:

Đây là bài làm của em ạ:

#include <iostream>

using namespace std;

int main()
{
   int i,a[i], n;
   cout <<"Moi ban nhap so luong phan tu :";
   cin >>n ;
   for (int i=0;i<n;i++)
{
    cout <<"Phan tu thu #"<<i+1<<" =";
    cin >>a[i];
}
int j=0;
for (int i=2;i<n;i++)
{
    if (a[i]>a[j])
        j=i;
}
cout <<"Chi so :"<<j<<" So lon nhat :"<<a[j];

    return 0;
}

Chương trình của em chạy không được.

Chưa biết i bằng bao nhiêu mà đã tạo mảng a với i (không rõ) phần tử. Đúng ra là phải tạo a theo n.

Chạy từ 2, đã gán j=0, thế phần tử a[1] bỏ đâu rồi?

Còn bạn nói là chương trình không chạy được? Hay nó chỉ chạy đến đoạn nào rồi không chạy nữa. Chi tiết!

3 Likes
#include<iostream>

using namespace std;

void input_array(int a[], int n) {
    for (int i = 0; i < n; i++) {
        cout << "Nhap vao phan tu a[" << i << "] : ";
        cin >> a[i];
    }
}
void output_array(int a[], int n) {
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
}
int max(int a[], int n)
{

    int max = a[0];
    for (int i = 1; i < n; i++)
        if (max < a[i])
            max = a[i];
        
    return max;
}
int GetMaxPosition(int a[], int n){
    int x = max(a, n);
    cout<<("\nVi tri cua phan tu lon nhat: ");
    for(int i = 0; i < n; i++){
        if(a[i] == x){
            cout<<(" ", i + 1);
        }
        
    }
   
}
int main(){
    int a[1000];
    int n;
    
    cout << "Nhap n: ";
    cin >> n;
    input_array(a, n);
    
    cout<<"\nmax la:"<<max(a,n);
    cout<<"\nVi tri cua phan tu max:"<<GetMaxPosition(a,n);
    cout <<"\nXuat mang: " << endl;
    output_array(a, n);
   
    
    
    system("pause");
    return 0;
}

Lỗi đây nhé,sửa chỗ bôi đậm và chỉnh int i=1

n là biến thì sao có thể tạo a theo n được ?
Phải chăng ý của bạn là cấp phát động ?

Cấp phát động đảm bảo cần bao nhiêu thì dùng bấy nhiêu.
Hoặc cho trước mảng a số phần tử cố định, dùng giới hạn trong số lượng phần tử.

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