Tại sao giá trị của phần tử trong mảng bị thay đổi?

tại hàm int_subsequence() thi giá trị của subsequence[5]=6
nhưng khi sang hàm int_height_limit() thì giá trị của subsequence[5]=8
???

Đưa code đầy đủ lên để mọi người xem.

2 Likes

hệ thống chỉ cho minh post 1 ảnh thôi nên không post hêt đoạn code đc. Nhưng phần đó là chính còn mấy đoạn khác chủ yếu là khai báo và gọi hàm trong main() thôi
Đây là kết quả mình chạy đc :

N=9; k=6
lúc đầu trong hàm init_subsequence() thì mảng subsequence[] ={1,2,3,4,5,6}
nhưng sau khi hàm chạy xong thì mảng subsequence[]={1,4,5,6,7,8}
còn hàm height_limit thì không đổi

rõ ràng thì mình chẳng hề động ji đến mảng subsequence[] sau khi nó chạy trong hàm init_subsequence()
nhưng giá trị lại đột ngột thay đổi
mất cả ngày rồi cũng không tìm đc lý do, mong mọi người giúp đỡ

Tại sao không đăng source code lên cho mọi người dễ tìm lỗi?

1 Like
#include <iostream>
using namespace std;

int N,k;
int subsequence[]={};
int height_limit[]={};
void init();
//void subset();

int main() {
    cout<<" Hãy nhập chiều dài chuỗi "<<"\t";
    cin>> N;
    cout<<" Hãy nhập chiều dài dãy con "<<"\t";
    cin>>k;



    init();
    cout<<endl;
    cout<<endl;
    for (int m=0;m<k;m++)
    {
        cout<<subsequence[m];

    }
    cout<<endl;
    cout<<endl;
    for (int u=0;u<k;u++)
    {
        cout<<height_limit[u];


    }


}

void init()
{
    for(int i=0;i<k;i++)
    {

        subsequence[i]=subsequence[i]+i+1;
        cout<<subsequence[i];

    }
    cout<<endl;

    for (int j=0;j<k;j++)
    {
        height_limit[j]=N-k+j+1;
        cout<<height_limit[j];

    }
    cout<<endl;


}

nhờ mọi người .thanks

cái này, là mảng có mấy phần tử @@~

1 Like

Bạn khai báo mảng mà không cấp số lượng phần tử à, thế thì lỗi là đúng rồi, lên khai báo một mảng động nếu bạn muốn kích thước mảng có thể thay đổi… những trường hợp mà thấy lỗi thì phải chịu khó sử dụng debug đi.

1 Like

thanks moi nguoi nhiu nha

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