01/10/2018, 17:30

Hàm hiển thị truyền tham số bởi 1 mảng c++

#include<iostream>
#include<math.h>

using namespace std;
void solve1(int arr[], int n){
int max = -99999999;
for(int i = 0; i < n; i++){
	cout<<"i= "<<i<<endl;
    for(int j = i; j < n; j++){
    	cout<<"j= "<<j<<endl;
        int t = 0;
        for(int k = i; k <= j; k++)
            t += arr[k];
        if(t > max) max = t;
    }
}
cout << max << endl;
}
int main(){
int n;
int a[n];	
cin>>n;
for(int i =0; i<n;i++){
	cin>>a[i];
}
solve1(a,n);
}

mình nhập n = 6; sau đó nhâp 6 giá trị a[i]
Mình truyền mảng a và n vào hàm solve1 như kia, nhưng khi thực thi run thì i chỉ chạy từ 0 tới 1, tức là giá trị n đã bị thay đổi, mình không biết vì sao? ai đó chỉ giúp mình với

NBQ viết 19:41 ngày 01/10/2018

Nhìn vào chương trình của bạn thì n đâu có bị thay đổi được, bạn thử post kết quả bạn thu được khi chạy thử lên xem nào?
Mình thấy i vẫn chạy đủ từ 0 tới 5 mà.

HK boy viết 19:40 ngày 01/10/2018

int n; int a[n]; cin>>n;

Đừng khai báo kiểu này.

Đọc n rồi hẵng cấp phát n phần tử cho mảng.

Nguyễn Văn Thịnh viết 19:43 ngày 01/10/2018

cậu cho mình xem code main() xem nào

Nguyễn Văn Thịnh viết 19:34 ngày 01/10/2018

chính xác, mình cũng vừa tìm ra lỗi là ở code này, mình phải khởi tạo n rồi mới khai báo mảng a[n].

Thanks câu nha

HK boy viết 19:33 ngày 01/10/2018

merged and moved by noname00

NBQ viết 19:40 ngày 01/10/2018

Vấn đề của bạn đã được @noname00 chỉ ra rồi. Mình chạy ra kết quả khác nhau chắc là hên xui thôi.
PS: Của bạn đây

Bài liên quan
0