30/09/2018, 17:18
lỗi in ra giá trị rác trong c++
mọi người xem dùng em bài phân tích số trong quy hoạch động này với, mỗi lần em chạy là nó lại in ra giá trị rác -858993460. em sửa hoài mà không được!!!
thuật toán: tạo ra mảng b 2 dòng, dòng 1 theo quy hoạch động của bài toán phân tích số, dòng hai thì sẽ thực hiện câu lệnh để chạy ra. sau đó nhập vị trí vào ví dụ n=5 thì nó sẽ chạy tới b[5][5] lúc này tính ra là bằng 7
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAX 100
int mang2dong(int b[][MAX], int n)
{
for (int j = 0; j <= n; j++)
{
b[0][j] = 0;
}
b[0][0] = 1;
int x = 0;
int y = 1;
for (int m = 1; m <= n; m++)
{
for (int v = 0; v <= n; v++)
{
if (v < m) b[y][v] = b[x][v];
else b[y][v] = b[x][v] + b[y][v - m];
}
x = 2 - x;
y = 2 - y;
}
return b[n][n];
}
int _tmain(int argc, _TCHAR* argv[])
{
int b[MAX][MAX], n;
cout << "nhap n=";
cin >> n;
cout << "phan tich so la::" << mang2dong(b, n) << endl;
return 0;
}
Bài liên quan
mà b[2][v] chưa có giá trị
Nhiều trình biên dịch sẽ cho giá trị rác vô. -> b[y][v] bị dính rác theo.
đó là lí do tại sao bị giá trị rác.
thuật toán sai ở chỗ này