Структура "Товар". Как работает программа? - 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.
- Выводится сообщение о суммарной стоимости товаров.
- Вводится сумма, которую покупатель заплатил.
- Вычисляется сдача как разница между суммой, которую покупатель заплатил, и суммой денег, потраченных на товары.
- Если сдача отрицательная, выводится сообщение
Какая сдача? Нам не доплатили!
. - Если сдача равна нулю, выводится сообщение
Сдачи нет!
. - Если сдача не равна нулю, выводится сообщение о сдаче.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д