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;
}
*grab popcorn* viết 19:34 ngày 30/09/2018
x = 2 - x
-> x = 2;

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.

Truongmta viết 19:21 ngày 30/09/2018

thuật toán sai ở chỗ này

Bài liên quan
0