Đầu vào 123 đầu ra 1+2+3 trong C++
Tôi mới làm quen với C++. Tôi đang tự dạy mình bằng sách giáo khoa của bạn bè. Có một bài tập ở cuối chương cấu trúc điều khiển (lặp lại) trong sách giáo khoa của tôi. Nó yêu cầu bạn viết một chương trình yêu cầu người dùng nhập một số. Sau đó, viết mã sẽ tách số đó thành các số nguyên riêng lẻ và tạo ra tổng của tất cả các số nguyên là một phần của số được nhập Show Ví dụ. 123 được xuất ra dưới dạng 1 2 3. và tổng là 6 Mã của tôi ở bên dưới. Vấn đề tôi đang gặp phải liên quan đến hàm while phân tách từng chữ số và in chúng ra riêng lẻ. Bất cứ điều gì tôi cố gắng, đầu ra luôn ngược lại. Ví dụ: nếu đầu vào là 123, đầu ra là Tôi đã thử vòng lặp điều khiển bộ đếm, tôi đã thử vòng lặp for. Bởi vì đầu vào là một số duy nhất bao gồm nhiều số nguyên, tôi không hiểu cách sử dụng bộ đếm khi về mặt kỹ thuật, bạn chỉ có một đầu vào (với tôi, hiểu biết của tôi về C ++ vẫn còn rất cơ bản) Điều tôi nghĩ cần phải xảy ra là bằng cách nào đó, khi các số được phân tách, hãy nhập lại từng số nguyên đã phân tách thành một "biến" để mỗi số nguyên có thể được tính và điều đó sẽ . Vấn đề là tôi không biết làm thế nào để làm điều này #bao gồm sử dụng không gian tên std; int chính () cout << "Hãy nhập một giá trị số nguyên. " << kết thúc; cout << "số bạn vừa nhập là. " << num << endl << endl; // Điều này tách các chữ số và in chúng ra nhiệt độ = số; trong khi (tạm thời) cout< // Cái này tính tổng các chữ số. 5 cout< cout << "Tổng các chữ số = " << sum << endl << endl; hệ thống("tạm dừng"); Thanks Nếu bạn bước qua những gì nó đang làm. mã đang cô lập chữ số cuối cùng của số trước tạm thời = 123 tạm thời = 12 tạm thời = 1 Vấn đề có chỉ định độ dài của số được nhập không? . Đây là một cách để tách các chữ số mà không cần vòng lặp (điều này giả sử nhập một số có 5 chữ số. ) Điều tôi nghĩ cần phải xảy ra là bằng cách nào đó, khi các số được phân tách, hãy nhập lại từng số nguyên đã tách thành một "biến" để mỗi số nguyên có thể được đếm và điều đó sẽ giúp dễ dàng xuất ra 1 2 3 thay vì 3 2 1, . Vấn đề là tôi không biết làm thế nào để làm điều này
VUI LÒNG SỬ DỤNG THẺ MÃ (nút định dạng <>) khi đăng mã. Nó làm cho mã của bạn dễ đọc hơn và cũng dễ phản hồi hơn wildblue, cảm ơn vì thông tin đầu vào của bạn, theo bài tập trong sách, không có giới hạn đầu vào cho độ dài của một số, nhưng những gì bạn đề xuất như một giải pháp là vững chắc. Cách duy nhất khác để thực hiện điều này là sử dụng một mảng, nhưng cho đến nay tôi vẫn chưa học được điều đó và bài tập không muốn tôi sử dụng một mảng. Tôi có thể sử dụng đề xuất của bạn để sửa đổi giải pháp và nhận được kết quả mà tôi đang tìm kiếm Nhận một số dương từ người dùng và in từng chữ số của một số ví dụ 1số = 12 đầu ra 2 1 ví dụ 2số = 123 đầu ra 3 2 1 Hãy thiết kế một logicsố = 12 Đầu tiên chúng ta hãy suy nghĩ, làm thế nào để tách chữ số cuối cùng 2 từ số 12 Vì các số là số thập phân (cơ số 10), phạm vi của mỗi chữ số phải từ 0 đến 9 Vì vậy, chúng ta có thể dễ dàng thực hiện bằng cách thực hiện modulo 10 Giống, 12 % 10 => 2 ( ta đã tách chữ số 2 từ số 12) Bây giờ, chúng ta phải tách chữ số 1 từ số 12 Điều này có thể đạt được bằng cách chia số cho 10 và lấy modulo 10 Giống, 12/10 => 1 Bây giờ lấy modulo 10 1 % 10 = 1 Sử dụng phương pháp trên, chúng ta có thể tách từng chữ số từ một số Hợp lýCho đến khi số trở thành 0 làm Lấy số % 10 và in kết quả Chia số đó cho 10. (số = số / 10) Thí dụHãy lấy num = 123 Bước 1Num = 123 (không bằng 0) Mod = 123% 10 ==> 3 Số = 123/10 ==> 12 Bước 2Num = 12 (không bằng 0) Mod = 12% 10 ==> 2 Số = 12/10 ==> 1 Bước 3Num = 1 (không bằng 0) Chế độ = 1% 10 ==> 1 Số = 1/10 ==> 0 Bước 4Num = 0 (bằng 0, dừng quá trình) Giải thích bằng hình ảnhChương trìnhThí dụ /***************************** *Program : split the digits * *Language : C * *****************************/ #include int main() { int num; scanf("%d",&num); while(num > 0) //do till num greater than 0 { int mod = num % 10; //split last digit from number printf("%d\n",mod); //print the digit. num = num / 10; //divide num by 10. num /= 10 also a valid one } return 0; } chạy nó Chủ đề bạn có thể thíchKết quả của bản in 123 10 sẽ là gì?Tại sao print(-123//10) sẽ xuất ra -13 ?
Làm cách nào để in 3 chữ số trong C?"%
Đầu ra của thuật toán đã cho cho đầu vào 1234 sẽ là gì?Ví dụ: nếu “1234” được nhập làm đầu vào, thì đầu ra phải là “ một nghìn hai trăm ba mươi tư ”.
Làm cách nào để lưu trữ 10 chữ số trong C?Cho phép sử dụng dấu ngoặc. "+44 (0) 1234 56789" trong đó số 0 chỉ là reg=quired nếu phần +44 không được sử dụng thì được phép có dấu cách để phân vùng . "01234 46789", v.v. |