Не работает switch - C (СИ) (70349)
Формулировка задачи:
Пару дней изучаю C. Почему-то не работает оператор switch. Простенькая программка, которая по первой букве животного выводит его на экран. Заранее спасибо
main() { char c; printf("Enter first symbol: \n"); scanf("%Г±", &c); switch (c) { case 'a': printf("\nAntiloop");break; case 'b' printf("\nBear"); break; case 'c': printf ("\nCat");break; case 'd': printf("\nDog");break; default: printf("Not finded!"); } getch(); }
Решение задачи: «Не работает switch»
textual
Листинг программы
[SPOILER]#include <stdio.h> #define ART 2.05 //price artichoke #define BEET 1.15 //price beet #define CARROT 1.09 //price carrot #define RATE1 6.50 //delivery up to 5 pounds #define RATE2 14.00 //delivery from 5 to 20 pounds #define KOEF 0.50 //coefficient delivery over 20 pounds #define DISC 0.05 //discount #define BRAKE1 5 #define BRAKE2 20 #define A 'a' #define B 'b' #define C 'c' #define Q 'q' int main(void) { char n; int i,quantity,art_q,beet_q,carrot_q; float sum,disc,del,result; art_q=0; beet_q=0; carrot_q=0; sum=0;[/SPOILER] printf("Select:\na)artichoke\nb)beet\nc)carrots\n"); scanf("%c",&n); while(n!=Q) { switch(n) { case A: printf("Enter quantity artichoke in lb:"); if(scanf("%d",&i)==1) art_q+=i; break; case B: printf("Enter quantity beet in lb:"); if(scanf("%d",&i)==1) beet_q+=i; break; case C: printf("Enter quantity carrots in lb:"); if(scanf("%d",&i)==1) carrot_q+=i; break; default: break; } printf("Select:\n"); printf("a)artichoke\n"); printf("b)beet\n"); printf("c)carrots\n"); printf("q)quit\n"); scanf("%c",&n); } [SPOILER]sum=art_q*ART+beet_q*BEET+carrot_q*CARROT; if(sum>=100) disc=sum*DISC; else disc=0; quantity=art_q+beet_q+carrot_q; if(quantity<=BRAKE1) del=RATE1; else if(quantity<=BRAKE2) del=RATE2; else del=RATE2+((quantity-BRAKE2)*KOEF); result=sum-disc+del; printf("Name Price_p_lb Quantity Price \nartichoke %-10.2f %-10d %-10.2f\nbeet %-10.2f %-10d %-10.2f\ncarrot %-10.2f %-10d %-10.2f\nResult\nTotal cost:%.2f Discount:%.2f Delivery price:%.2f Total:%.2f\n", ART,art_q,(float)art_q*ART,BEET,beet_q,(float)beet_q*BEET,CARROT,carrot_q,(float)carrot_q*CARROT,sum,disc,del,result); return 0; }[/SPOILER]
Объяснение кода листинга программы
- В начале кода объявлены константы, представляющие цены и коэффициенты для различных продуктов и условий доставки.
- Затем объявлены переменные, которые будут использоваться для отслеживания количества каждого продукта и общего количества продуктов.
- Далее пользователю предлагается выбрать продукт, введя соответствующую букву.
- В цикле while пользователь продолжает вводить продукты до тех пор, пока не введет
q
для выхода. - Когда пользователь вводит продукты, они добавляются к соответствующим переменным.
- После того, как пользователь закончил вводить продукты, вычисляется общая стоимость, применяются скидки и вычисляется стоимость доставки.
- Наконец, выводится информация о продуктах, их стоимости, количестве и общей стоимости.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д