Tôi đang thực hiện bài tập về nhà cho khóa học của tôi trong C (khóa học lập trình đầu tiên). Một phần của nhiệm vụ là viết mã để người dùng nhập số lên đến 9 chữ số và chương trình cần xác định xem con số này có "tăng"/"thực sự tăng"/"giảm"/"thực sự giảm" hay không "tăng và giảm"/"thực sự giảm và thực sự tăng"/"không giảm và không tăng". (7 lựa chọn trong tổng số)Trích xuất các chữ số riêng lẻ từ một số trong C
Vì đây là nhiệm vụ đầu tiên của chúng tôi chúng tôi không được phép sử dụng bất cứ điều gì ngoài những gì được dạy trong lớp:
do-while, for, vòng lặp while, khác-nếu, nếu, nghỉ ngơi, tiếp tục scanf, printf, modulo, và các nhà khai thác cơ bản
(Chúng ta không thể sử dụng bất kỳ thư viện bên cạnh cho stdio.h)
Vậy là xong. Tôi không thể sử dụng mảng hoặc getchar
hoặc bất kỳ nội dung nào trong số đó. Chức năng duy nhất tôi có thể sử dụng để nhận dữ liệu nhập từ người dùng là scanf
.
Cho đến giờ tôi đã viết thuật toán bằng sơ đồ và mọi thứ, nhưng tôi cần tách đầu vào của người dùng thành các chữ số riêng biệt. Ví dụ: nếu người dùng nhập "1234 ..." tôi muốn lưu 1 trong một, 2 trong b, v.v., sau đó thực hiện so sánh giữa tất cả các chữ số để xác định ví dụ xem chúng có bằng nhau hay không (tăng và giảm) hoặc liệu a> b> c ... (giảm) và vân vân.
Tôi biết cách tách từng chữ số bằng cách sử dụng toán tử% và /, nhưng tôi không thể tìm ra cách "lưu" các giá trị này trong biến mà sau này tôi có thể sử dụng để so sánh.
Đây là những gì tôi có cho đến nay:
printf("Enter a positive number : ");
do {
scanf ("%ld", &number);
if (number < 0) {
printf ("invalid input...enter a positive integer: ");
continue;
}
else break;
} while (1);
while (number < 0) {
a = number % 10;
number = number - a;
number = number/10;
b = a;
}
Chờ, họ muốn bạn chia một số thành số "tối đa 9", nhưng chúng sẽ không cho phép bạn sử dụng mảng? Thats ... đó chỉ là tàn nhẫn! –
chỉ là phần đầu tiên ... một phần khác liên quan đến lý thuyết goldbach, người dùng nhập bất kỳ số nào lên đến 9 chữ số và đầu ra máy tính là số nguyên tố đầu tiên cộng với số đó. cùng một giới hạn cho điều đó cũng như – nofe
Tôi không hiểu khái niệm của bạn về tăng và thực sự tăng lên. Và "tăng và giảm" là gì và "thực sự giảm và thực sự tăng". Vui lòng làm rõ cách mã của bạn được cho là phân loại đầu vào. – abelenky