Cần giúp bài tách chữ số

Giúp em bài C++ này với ạ, Em năm nay lớp 12 ạ. Còn khoảng một tháng nữa là sẽ thi thành phố môn tin học.

Viết chương trình nhập 1 số có 5 chữ số, tách số đó ra thành các chữ số và in ra màn hình, ngăn cách nhau bởi 3 dấu cách
VD 12345
in ra 1 2 3 4 5
em cảm ơn!

1 Like

Gợi ý cho bạn là dùng chỉ cần lấy số đó module cho 10 là được chữ số cuối cùng rồi

1 Like

Bạn cứ lấy số đó chia cho 10 lấy dư sẽ được chữ số cuối. Để loại bỏ số cuối mà mình đã có thì bạn lấy số đó chia cho 10 lấy nguyên. Lặp lại như vậy thôi :smiley:

dùng lệnh lặp thôi;;
lấy phần dư số n chia cho 10;
gán số n=n/10;
tiếp

Sao k đọc số dưới dạng chuỗi rồi in ra

1 Like

chia cho 10 lấy phần dư

Nếu đề bài cho nhập dạng chuỗi thì mới được nha bạn. còn ví dụ đề yêu cầu nhập số kiểu int hay long thì lại khác

Bạn tham khảo :smiley: Mình mới học C thôi nên không biết đúng không :smiley:

Mình thì không học bên C++ nên không rành lắm mà mình biết cách làm bên pascal nên bạn có thể tham khao cách làm rồi viết bằng C++ cũng được

var n,i:integer;
    x,y,kq:string;
begin
    write('Nhap so: '); readln(n);
    x:='';y:=' ';kq:='';
    str(n,x);
    for i:=length(x) downto 1 do kq:=kq+X[i]+y;
    while kq[1]='0' do delete(kq,1,1);
    write('ket qua: ',kq);
    readln
end.

Trong C++ có ToString() không nhỉ :smiley:

1 Like

Đây nhé.:slight_smile:

bài này k chạy đc bạn ạ

Given the number 12345:

5 is 12345 % 10
4 is 12345 / 10 % 10
3 is 12345 / 100 % 10
2 is 12345 / 1000 % 10
1 is 12345 / 10000 % 10

Nguồn: https://stackoverflow.com/questions/4261589/how-do-i-split-an-int-into-its-digits

Code này chỉ dành cho trích xuất cố định thôi. Mà có thế này tại sao phải dựng lên cái object string để làm gì cơ chứ.

1 Like
#include <iostream >
#include <string.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define Max 100
int main() {
	do {
		//Khai báo biến ở đây.
		int n, t;
		//Lệnh của chương trình đặt ở đây.
		cout << "Nhap n: ";
		cin >> n;
		int x = n;
		n = abs(n);
		int dem = 0;
		do {
			n /= 10;
			dem++;
		} while (n);
		int tong = 0;
		while (x >= 0 && dem > 0) {
			dem--;
			t = x / pow(10, dem);
			x %= int(pow(10, dem));
			cout << t << endl;
		}
		cout << "Nhap phim ESC de thoat!\n";
	} while (_getch() != 27);
	return 0;
}

theo mình thấy thì nếu tách n và xuất thôi thì nó lại theo chiều ngược nên tốt nhất cứ tính số đảo ngược của n trước và tạo thêm 1 vòng lặp while để tách và xuất số đảo ngược của n thì nó sẽ xuất theo thứ tự của đề bài

int t,n,s=0;
cout<<"\nNhap n: ";cin>>n;
while(n!=0) 
{
	s=s*10+n%10;
	n=n/10;
}
while(s!=0)
{
	t=s%10;
	cout<<t<<" ";
	s=s/10;
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?