01/10/2018, 17:12

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;

}
NguyenXuanHung viết 19:13 ngày 01/10/2018

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?

Nguyễn Nam viết 19:14 ngày 01/10/2018

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

Bi viết 19:16 ngày 01/10/2018

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

Nguyễn Nam viết 19:19 ngày 01/10/2018

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

Bi viết 19:14 ngày 01/10/2018

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

Nguyễn Nam viết 19:26 ngày 01/10/2018

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

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

cout << "so sau dao nguoc la: " << travesodao(a) << endl;
cout << kiemtradoixung(a) << endl;
Bi viết 19:24 ngày 01/10/2018

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

Ohoh Tiger viết 19:25 ngày 01/10/2018

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

Bài liên quan
0