01/10/2018, 16:10

Đọc từ file số n và phân tích thành dãy nhị phân

Vấn đề của mình là mình thật sự ko hiểu kiểu trả về của doinhiphan là char* nhưng sau khi return thì in ra sai. Nhưng nếu trong while(n!=0) mình cho xuất str[i] thì lại chính xác. Và đây là code của mình . Mong nhận được sự trợ giúp từ mọi người ạ.

#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
char *doinhiphan(long n)
{
	char *str;
	str=new char [200];
	int i=0;
	while (n!=0)
	{
		if (n%2==0)
		{	
			str[i]='0';
		}
		else 
		str[i]='1';
		n=n/2;
		i++;
	}
	str[i]=NULL;
	char res[200];
	for (int j=i-1;j>=0;j--)
	{
		res[i-j-1]=str[j];
	}
	delete(str);
	res[i]='';
	return str;
}

void doctep(long &n)
{
	fstream f;
	f.open("matran.txt",ios::in);
	f >> n;
	f.close();
}


int main()
{
	long n;
	doctep(n);
	cout << doinhiphan(n);
}
Tao Không Ngu. viết 18:20 ngày 01/10/2018

Hi Đỗ Nam

  1. Bạn xóa nó rồi thì làm sao cho ra ket quả đúng được.
Đỗ Nam viết 18:15 ngày 01/10/2018

Mình nhầm .
bạn thử test với return res hộ mình với @@

Đỗ Nam viết 18:21 ngày 01/10/2018

Oh oh . Mình cảm ơn @@

Bài liên quan
0