Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số
Đề bài:
Viết chương trình C cho phép nhập vào một số nguyên n và thực hiện đổi vị trí của chữ cái đầu tiên và chữ cái cuối cùng.
Lưu ý trong trường hợp chữ số cuối cùng là 0 thì khi đổi chỗ sẽ được loại bỏ (ví dụ 9800 -> 809)
INPUT
1234
OUTPUT
4321
Giải:
#include<iostream> using namespace std; int n; int a[100]; void doivtri() { int i = 0; while(n > 0 ) { a[i] = n % 10; n = n / 10; i++; } if( a[0] != 0) cout << a[0]; for(int j = i-2; j >= 1; j--) cout << a[j]; cout << a[i-1]; } int main() { cin >> n; doivtri(); }
mình không hiểu chương trình này lắm
Trả lờiXóaBạn thử nháp code ra giấy là rõ ngay thôi mà
Trả lờiXóaDùng hàm void để tách các chữ số vào trong mảng,tiện thể đếm số chữ số trong số đó luôn = biến i VD: 1234 thì ta có được
a[0]=4
a[1]=3
a[2]=2
a[3]=1
i=4
Bây giờ in ra thôi. Do đảo đầu và cuối nên đẩy a[0]=4 lên đầu.
Lưu ý TH chữ số cuối cùng là 0 thì bỏ nên thêm đk a[0]!=0 thì mới được in ra
Do mình sẽ chỉ đổi 2 vị trí đầu và cuối => giữ nguyên i-2 số còn lại
Xét a[1]=3
a[2]=2.
Giờ cần in a[2] ra trước xong mới đến a[1] nên chạy lặp từ i-2(bỏ số đầu,cuối) đến 1 => cout<<a[i];
Sau vòng lặp ta được số 423? rồi. Bây h in nốt ? ra. Do vừa đảo a[3]=1 là số cuối cần in nên cout<<a[i-1] là xong
theo mình hiểu là đổi số chữ cái đầu và cuối thì input 1234, ouput phải là 4231 chứ nhể
Trả lờiXóalà 4321
Xóaảo thật
Trả lờiXóa