Code bài toán đảo ngược chữ số của 1 số bị lỗi


Cho em hỏi lỗi của bài này ạ!
Tình hình là em mới học đến bài đảo ngược chữ số thì bị lỗi như này ạ, nó hiện ra vừa chữ vừa số, mong các anh chị giúp đỡ ạ, em mới học C++ thôi ạ

#include <iostream>
#include<cmath>
using namespace std;

void nhap(int &n)
{
	cout << "Nhap so can dao nguoc: ";
	cin >> n;
}

int travesodao(int n)
{
	int soluongchuso = log10(double(n));
	int tong = 0;
	while (n != 0)
	{
		tong += n % 10 * pow(10, soluongchuso--);
		n /= 10;
	}
	return tong;
}

int kiemtradoixung(int n)
{
	if (n == travesodao(n))
	{
		return 1;
	}
	return 0;
}


int main()
{
	int a;
	nhap(a);

	cout << "so sau dao nguoc la: " << travesodao << endl;
	cout << kiemtradoixung << endl;

	system("pause");
	return 0;

}

Hàm travesodao voi kiemtradoixung trong hàm main bạn chưa truyền đối số travesodao(a),kiemtradoixung(a) với hàm pow bạn sửa thành pow((float)10, soluongchuso–) xem có được không?

1 Like

thêm pow làm gì cho phức tạp. tong = tong*10 + n%10 là được rồi

1 Like

2018-08-14_223257
không được luôn bạn ơi, sao nó ra đáp án vừa số vừa chữ vậy

bạn sử dụng hàm sai rồi. travesodao(a) và kiemtradoixung(a)

Mình cũng thêm vô phần main rồi huhu

thay thành như thế này nè.

cout << "so sau dao nguoc la: " << travesodao(a) << endl;
cout << kiemtradoixung(a) << endl;

Được rồi ạ, mình cảm ơn nhé

bạn nên đặt nút solution cho người trả lời.
Ps : bạn mới tham gia thôi nhở

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