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

c++

(Nguyễn Văn Thịnh) #1
#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) #2

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) #3

Đừ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) #4

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


(Nguyễn Văn Thịnh) #5

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 :slight_smile:


(HK boy) #6

merged and moved by noname00


(NBQ) #7

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


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