
Помогите найти ошибку в написании программы на си!В задаче нужно было вычислить величину
скидки.Скидка в 3% предоставляется,если сумма покупки больше 500 рублей, в 5% - если сумма больше 1000 рублей, 8% при стоимости покупки свыше 1500 рублей! Входные данные: Сумма покупки.Пример вывода :Введите сумму покупки инажмите [Enter]-> 640Ваша скидка 3%Сумма скидки: 19.20 руб.Вот мое решение#include int main() {int S, P;printf("Введите сумму\n");scanf("%d", &S);if S>500{P=3;S=S/100*P;printf("Ваша скидка %d\n", P);printf("Сумма скидки %d\n", S);end}else if (S>1000){P=5;S=S/100*Pprintf("Ваша скидка %d\n", P);printf("Сумма скидки %d\n", S);end;}else if (S>1500){P=8;S=S/100*Pprintf("Ваша скидка %d\n", P);printf("Сумма скидки %d\n", S);end;if S<=500printf("Вы ввели неверные данные %d\n");return 0;}

Ответы на вопрос

Ответ:
#include <stdio.h>
int main()
{
int S, P;
printf("Введите сумму\n");
scanf("%d", &S);
if (S > 1500)
{
P = 8;
S = S / 100 * P;
printf("Ваша скидка %d\n", P);
printf("Сумма скидки %d\n", S);
}
else if (S > 1000)
{
P = 5;
S = S / 100 * P;
printf("Ваша скидка %d\n", P);
printf("Сумма скидки %d\n", S);
}
else if (S > 500)
{
P = 3;
S = S / 100 * P;
printf("Ваша скидка %d\n", P);
printf("Сумма скидки %d\n", S);
}
else
{
printf("Для вашей суммы не предусмотренна скидка\n");
}
return 0;
}
Объяснение:
Пропущен header, отсутствуют скобки после if, отсутствует ";", END??? Зачем?? Точно нужно было написать на "C"?



Ваша программа имеет несколько синтаксических и логических ошибок. Вот исправленный вариант программы:
c#include <stdio.h>
int main() {
int S, P = 0; // Объявляем переменные S (сумма покупки) и P (процент скидки) и инициализируем P нулем.
printf("Введите сумму\n");
scanf("%d", &S);
if (S > 1500) {
P = 8;
} else if (S > 1000) {
P = 5;
} else if (S > 500) {
P = 3;
}
if (P > 0) { // Проверяем, есть ли скидка
float discount = (float) S * P / 100; // Вычисляем сумму скидки
printf("Ваша скидка %d%%\n", P);
printf("Сумма скидки %.2f руб.\n", discount); // Выводим сумму скидки с двумя знаками после запятой
} else {
printf("Вы ввели неверные данные\n");
}
return 0;
}
Исправления:
- Добавлена включаемая директива
<stdio.h>
. - В объявлениях переменных
S
иP
удалены лишние символы&
и инициализирована переменнаяP
значением 0. - Исправлено условие проверки скидок: теперь они проверяются в порядке убывания суммы для корректной проверки.
- Добавлены фигурные скобки для блоков кода внутри условных операторов.
- Добавлена проверка
P > 0
перед расчётом и выводом скидки, чтобы убедиться, что скидка действительно применяется.
Обратите внимание, что сумма скидки вычисляется как вещественное число (float
), чтобы иметь возможность вывести десятичную долю суммы.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili