Записать число русскими словами - C (СИ)
Формулировка задачи:
Дано натуральное число n (n <= 1000). Записать это число русскими словами (семнадцать, двести пятьдесят три, тысяча и т. д. ).
Листинг программы
- #include <iostream>
- #include <string.h>
- using namespace std;
- int main() {
- int n;
- string s;
- cin >> n;
- if(n==1000){
- s="тысяча";
- }else{
- s="";
- switch(n/100){
- case 1:s="сто";break;
- case 2:s="двести";break;
- case 3:s="триста";break;
- case 4:s="четыреста";break;
- case 5:s="пятьсот";break;
- case 6:s="шестьсот";break;
- case 7:s="семьсот";break;
- case 8:s="восемьсот";break;
- case 9:s="девятьсот";break;
- }
- if(n >= 100 && n%100 >= 10){ s+=" ";}
- switch((n%100)/10){
- case 2:s=s+"двадцать";break;
- case 3:s=s+"тридцать";break;
- case 4:s=s+"сорок";break;
- case 5:s=s+"пятьдесят";break;
- case 6:s=s+"шестьдесят";break;
- case 7:s=s+"семьдесят";break;
- case 8:s=s+"восемьдесят";break;
- case 9:s=s+"девяносто";break;
- }
- if(n%100>=10&n%100<20){
- switch(n%100){
- case 10:s=s+"десять";break;
- case 11:s=s+"одиннадцать";break;
- case 12:s=s+"двенадцать";break;
- case 13:s=s+"тринадцать";break;
- case 14:s=s+"четырнадцать";break;
- case 15:s=s+"пятнадцать";break;
- case 16:s=s+"шестнадцать";break;
- case 17:s=s+"семнадцать";break;
- case 18:s=s+"восемнадцать";break;
- case 19:s=s+"девятнадцать";break;
- }
- }else{
- if(n%10 != 0 && (n % 100 >= 20 || n >= 100)){ s+=" ";}
- switch(n%10){
- case 1:s=s+"один";break;
- case 2:s=s+"два";break;
- case 3:s=s+"три";break;
- case 4:s=s+"четыре";break;
- case 5:s=s+"пять";break;
- case 6:s=s+"шесть";break;
- case 7:s=s+"семь";break;
- case 8:s=s+"восемь";break;
- case 9:s=s+"девять";break;
- }
- }
- }
- cout << s << endl;
- return 0;
- }
Решение задачи: «Записать число русскими словами»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main() {
- int n;
- char s[100];
- scanf("%d", &n);
- if(n==1000){
- strcpy(s, "тысяча");
- }else{
- s[0]=0;
- switch(n/100){
- case 1:strcpy(s, "сто");break;
- case 2:strcpy(s, "двести");break;
- case 3:strcpy(s, "триста");break;
- case 4:strcpy(s, "четыреста");break;
- case 5:strcpy(s, "пятьсот");break;
- case 6:strcpy(s, "шестьсот");break;
- case 7:strcpy(s, "семьсот");break;
- case 8:strcpy(s, "восемьсот");break;
- case 9:strcpy(s, "девятьсот");break;
- }
- switch((n%100)/10){
- case 2:strcat(s, " двадцать");break;
- case 3:strcat(s, " тридцать");break;
- case 4:strcat(s, " сорок");break;
- case 5:strcat(s, " пятьдесят");break;
- case 6:strcat(s, " шестьдесят");break;
- case 7:strcat(s, " семьдесят");break;
- case 8:strcat(s, " восемьдесят");break;
- case 9:strcat(s, " девяносто");break;
- }
- if(n%100>=10&n%100<20){
- switch(n%100){
- case 10:strcat(s, " десять");break;
- case 11:strcat(s, " одиннадцать");break;
- case 12:strcat(s, " двенадцать");break;
- case 13:strcat(s, " тринадцать");break;
- case 14:strcat(s, " четырнадцать");break;
- case 15:strcat(s, " пятнадцать");break;
- case 16:strcat(s, " шестнадцать");break;
- case 17:strcat(s, " семнадцать");break;
- case 18:strcat(s, " восемнадцать");break;
- case 19:strcat(s, " девятнадцать");break;
- }
- }else{
- switch(n%10){
- case 1:strcat(s, " один");break;
- case 2:strcat(s, " два");break;
- case 3:strcat(s, " три");break;
- case 4:strcat(s, " четыре");break;
- case 5:strcat(s, " пять");break;
- case 6:strcat(s, " шесть");break;
- case 7:strcat(s, " семь");break;
- case 8:strcat(s, " восемь");break;
- case 9:strcat(s, " девять");break;
- }
- }
- }
- printf("%s\n", s);
- return 0;
- }
Объяснение кода листинга программы
В этом коде на языке C представлена функция, которая принимает целое число от 1 до 999 и выводит его русское словесное представление. Список действий, выполняемых в коде:
- Объявляются две переменные:
n
типа int (целое число) иs
типа char с размером 100 символов. - С помощью функции
scanf
в переменнуюn
считывается целое число, которое затем проверяется на равенство 1000. - Если число равно 1000, то в переменную
s
записывается словотысяча
. - В противном случае, в
s
записывается ноль, который необходим для корректной работы последующих операций со строками. - Далее, в зависимости от значения
n
от 1 до 9, вs
записывается соответствующее слово отсто
додевятьсот
. - Затем, в зависимости от значения
n
от 10 до 90, вs
добавляется слово, обозначающее количество отдесять
додевяносто
. - Если
n
находится в диапазоне от 100 до 199, то вs
добавляется слово, обозначающее десятки отдесять
додевятнадцать
. - В противном случае, в
s
добавляется слово, обозначающее единицы отодин
додевять
. - В конце функция выводит результат в консоль. Код довольно сложный из-за большого количества условий, но он выполняет свою задачу и может быть использован для обучения основам программирования и работы со строками.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д