Untitled

Run Settings
LanguageC
Language Version
Run Command
/** * @file SummerPractise2022 * @author Ризлейцев М.Р., гр. 515а, варіант 33 * @date 12 липня 2022 * @brief Практика * * Розробити програму, що переводить суму, задану у вигляді числа з плаваючою комою, в текст. */ #include <stdio.h> #include <locale.h> #include <string.h> #include <stdlib.h> #include <stdbool.h> void two_arrays(float num, int uah[], int pen[]) { long long int d = num * 100; int i = 9; int j = 9; int k = 0; while (i >= 0) { if (!d) break; if (k >= 2) { uah[i] = d % 10; i--; } else { pen[j] = d % 10; k++; j--; } d /= 10; } return; } void in_words(int digit, const int arr[]) { //вивід числа словами bool not_null = false; //змінна початку виводу числа свловами if (digit == 0) { printf("нуль "); return; } for (int i = 0; i < 10; i++) { //цикл виводу усього числа словами if (!arr[i] && !not_null) { //якщо поточний елемент = 0 і число нульове not_null = true; //число не нульове if (arr[0]) //якщо це перший елемент i--; //зменншення індексу continue; //пропустити тіло циклу } if (!i) { //якщо індекс елементу = 0 switch (arr[i]) { //вибір числа case 1: printf("один "); break; case 2: printf("два "); break; } if (!arr[i]) //якщо цей елемент = 0 printf(""); else if (arr[i] == 1) //якщо цей елемент = 1 printf("мiльярд "); else //в іншому разі printf("мiльярди "); } if (i == 1 || i == 4 || i == 7) { //якщо індекс елменту = 1, або 4, або 7 switch (arr[i]) { //вибір case 1: printf("сто "); break; case 2: printf("двiстi "); break; case 3: printf("триста "); break; case 4: printf("чотириста "); break; case 5: printf("п'ятсот "); break; case 6: printf("шiстсот "); break; case 7: printf("сiмсот "); break; case 8: printf("вiсiмсот "); break; case 9: printf("дев'ятсот "); break; } if (!arr[i + 1] && !arr[i + 2]) { //якщо наступні два елементи нулі if (!arr[i]) //якщо елемент = 0 printf(""); else if (i == 1) //якщо індекс елементу = 1 printf("мiльйонiв "); else if (i == 4) //якщо індекс елементу = 4 printf("тисяч "); } } else if (i == 2 || i == 5 || i == 8) { //якщо індекс елменту = 2, або 5, або 8 if (arr[i] == 1) { //якщо елемент = 1 switch (arr[i + 1]) { //вибір case 0: printf("десять "); break; case 1: printf("одинадцять "); break; case 2: printf("дванадцять "); break; case 3: printf("тринадцять "); break; case 4: printf("чотирнадцять "); break; case 5: printf("п'ятнадцять "); break; case 6: printf("шiстнадцять "); break; case 7: printf("сiмнадцять "); break; case 8: printf("вiсiмнадцять "); break; case 9: printf("дев'ятнадцять "); break; } if (i == 2) //якщо індекс елементу = 2 printf("мiльйонiв "); else if (i == 5) //якщо індекс елементу = 5 printf("тисяч "); } else if (arr[i] != 1) { //якщо елемент не = 1 switch (arr[i]) { //вибір case 2: printf("двадцять "); break; case 3: printf("тридцять "); break; case 4: printf("сорок "); break; case 5: printf("п'ятдесят "); break; case 6: printf("шiстдесят "); break; case 7: printf("сiмдесят "); break; case 8: printf("вiсiмдесят "); break; case 9: printf("дев'яносто "); break; } if (!arr[i + 1]) { //якщо наступний елемент = 0 if (!arr[i]) //якщо елемент = 0 printf(""); else if (i == 2) //якщо індекс елементу = 2 printf("мiльйонiв "); else if (i == 5) //якщо індекс елементу = 5 printf("тисяч "); } else { //в іншому разі switch (arr[i + 1]) { //вибір case 1: { if (i + 1 == 6 || i + 1 == 9) //якщо наступний елемент під індексом 6 printf("одна "); else //в іншому разі printf("один "); } break; case 2: { if (i + 1 == 6 || i + 1 == 9) //якщо наступний елемент під індексом 6 printf("двi "); else //в іншому разі printf("два "); } break; case 3: printf("три "); break; case 4: printf("чотири "); break; case 5: printf("п'ять "); break; case 6: printf("шiсть "); break; case 7: printf("сiм "); break; case 8: printf("вiсiм "); break; case 9: printf("дев'ять "); break; } if (i == 2) { //якщо індекс елементу = 2 if (!arr[i + 1]) //якщо наступний елемент = 0 printf(""); else if (arr[i + 1] == 1) //якщо наступний елемент = 1 printf("мiльйон "); else if (arr[i + 1] == 2 || arr[i + 1] == 3 || arr[i + 1] == 4) //якщо наступний елемент = 2, 3 або 4 printf("мiльйони "); else //в іншому разі printf("мiльйонiв "); } else if (i == 5) { //якщо індекс елементу = 5 if (!arr[i + 1]) //якщо наступний елемент = 0 printf(""); else if (arr[i + 1] == 1) //якщо наступний елемент = 1 printf("тисяча "); else if (arr[i + 1] == 2 || arr[i + 1] == 3 || arr[i + 1] == 4) printf("тисячi "); else printf("тисяч "); } } } } } } int main() { setlocale(LC_ALL, "rus"); int pen[10] = { 0 }; int uah[10] = { 0 }; float num; while (true) { scanf("%f", &num); if (num < 0) { printf("Вы ввели некорректное число\n"); system("pause"); system("cls"); } else { two_arrays(num, uah, pen); for (int i = 0; i < 10; i++) printf("%d ", uah[i]); printf("\n"); for (int j = 0; j < 10; j++) printf("%d ", pen[j]); printf("\n"); in_words(num, uah); if (uah[9] == 1) printf("гривня "); else if (uah[9] == 2 || uah[9] == 3 || uah[9] == 4) printf("гривнi "); else printf("гривень "); in_words(num, pen); if (pen[9] == 1) printf("копiйка "); else if (pen[9] == 2 || pen[9] == 3 || pen[9] == 4) printf("копiйки "); else printf("копiйок "); break; } } return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines