Вопрос задан 01.07.2023 в 03:43. Предмет Информатика. Спрашивает Казакевич Елизавета.

Помогите найти ошибку в написании программы на си!В задаче нужно было вычислить величину

скидки.Скидка в 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;}
0 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"?

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваша программа имеет несколько синтаксических и логических ошибок. Вот исправленный вариант программы:

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; }

Исправления:

  1. Добавлена включаемая директива <stdio.h>.
  2. В объявлениях переменных S и P удалены лишние символы &amp; и инициализирована переменная P значением 0.
  3. Исправлено условие проверки скидок: теперь они проверяются в порядке убывания суммы для корректной проверки.
  4. Добавлены фигурные скобки для блоков кода внутри условных операторов.
  5. Добавлена проверка P > 0 перед расчётом и выводом скидки, чтобы убедиться, что скидка действительно применяется.

Обратите внимание, что сумма скидки вычисляется как вещественное число (float), чтобы иметь возможность вывести десятичную долю суммы.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос