Структура "Товар". Как работает программа? - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- struct Tovar // имя структуры
- {
- int R, K;
- };
- int main()
- {
- long double P;
- int Rubl, Kop;
- struct Tovar T1, T2; // объявил переменную-структуру
- P = 34.53;
- T1.R = (int)P;
- T1.K = (int)((P - (int)P) * 100);
- // Аналогично для товара 2
- P = 6.25;
- T2.R = (int)P;
- T2.K = (int)((P - (int)P) * 100);
- Rubl = T1.R + T2.R;
- Kop = T1.K + T2.K;
- if (Kop >= 100)
- {
- ++Rubl;
- Kop -= 100;
- };
- printf("Суммарная стоимость товаров %i рублей %i копеек", Rubl, Kop);
- // Тут надо ввести сколько заплатили - юзаем опять переменную Р
- P = 50.0;
- P -= (Rubl + (double)Kop / 100);
- if (P < 0)
- printf("Какая сдача? Нам не доплатили!");
- else if (P == 0)
- printf("Сдачи нет!");
- else
- {
- // Заюзаем для нахождения сдачи одну и наших переменных типа нашей структуры - она все равно нам не нужна уже
- T1.R = (int)P;
- T1.K = (int)((P - (int)P) * 100);
- printf("\nСдача: %i рублей %i копеек", T1.R, T1.K);
- };
- system("pause");
- return 0;
- }
Решение задачи: «Структура "Товар". Как работает программа?»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- struct Tovar // объявляем структуру
- {
- int R, K; // объявляем два элемента структуры типа int
- };
- int main()
- {
- long double P;//объявляем переменную типа long double
- int Rubl, Kop;//объявляем 2 переменные типа int
- struct Tovar T1, T2; // объявил переменную-структуру
- P = 34.53;//присваиваем переменной Р значение 34.53
- T1.R = (int)P;//обращаемся к элементу структуры R и присваиваем ему значение типа int т.е. берём интовую // часть данной переменной т.е. из 34.53 получаем 34
- T1.K = (int)((P - (int)P) * 100);//тут делаем следующее (34.53 - 34)*100 = 53
- // Аналогично для товара 2(ну да тут всё то же самое как с первым товаром товаром)
- P = 6.25;
- T2.R = (int)P;
- T2.K = (int)((P - (int)P) * 100);
- Rubl = T1.R + T2.R;//складываем количество рублей 1 и 2 товаров
- Kop = T1.K + T2.K;//складываем количество копеек 1 и 2 товаров
- if (Kop >= 100)//если в сумме количество копеек >100 то количество рублей увеличивает на 1 и от суммы
- { //копеек отнимаем 100(правда данный пример работает исправно только для 2-ух товаров
- ++Rubl; //если бы было 3 товара(например стоимостью 2.80, 2.90 и 2.50) то тогда бы надо было к
- Kop -= 100; // рублям добавлять 2 а от копеек отнимать 200
- };
- printf("Суммарная стоимость товаров %i рублей %i копеек", Rubl, Kop);
- // Тут надо ввести сколько заплатили - юзаем опять переменную Р
- P = 50.0;//допустим заплатили 50 рублей
- P -= (Rubl + (double)Kop / 100);// Р = 50 - (40 + ((25+78)/100)) находим разницу т.е. сдачу
- if (P < 0)
- printf("Какая сдача? Нам не доплатили!");
- else if (P == 0)
- printf("Сдачи нет!");
- else
- {
- // Заюзаем для нахождения сдачи одну и наших переменных типа нашей структуры - она все равно нам не нужна уже
- T1.R = (int)P;
- T1.K = (int)((P - (int)P) * 100);
- printf("\nСдача: %i рублей %i копеек", T1.R, T1.K);
- };
- system("pause");
- return 0;
- }
Объяснение кода листинга программы
- Объявляется структура
Товар
с двумя элементами типа int - R и K. - В переменной типа long double P присваивается значение 34.53.
- Обращение к элементу структуры T1.R и присвоение ему значения типа int, равного интовой части P, то есть 34.
- Обращение к элементу структуры T1.K и присвоение ему значения, равного (P - (int)P) * 100, то есть 53.
- Аналогичные действия для товара 2: P = 6.25, T2.R = (int)P, T2.K = (int)((P - (int)P) * 100).
- Суммарное количество рублей товаров 1 и 2 присваивается переменной Rubl, а суммарное количество копеек - переменной Kop.
- Если количество копеек больше или равно 100, то количество рублей увеличивается на 1, а от суммы копеек отнимается 100.
- Выводится сообщение о суммарной стоимости товаров.
- Вводится сумма, которую покупатель заплатил.
- Вычисляется сдача как разница между суммой, которую покупатель заплатил, и суммой денег, потраченных на товары.
- Если сдача отрицательная, выводится сообщение
Какая сдача? Нам не доплатили!
. - Если сдача равна нулю, выводится сообщение
Сдачи нет!
. - Если сдача не равна нулю, выводится сообщение о сдаче.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д