24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 319

Не работает switch

04.10.2016, 17:08. Показов 4347. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пару дней изучаю C. Почему-то не работает оператор switch. Простенькая программка, которая по первой букве животного выводит его на экран. Заранее спасибо
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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();
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2016, 17:08
Ответы с готовыми решениями:

Не работает switch
Добрый день! Не работает следующий код: int T1 = 5; switch( T1 ) { case 0: SpeedButton3->Down; ...

Switch не работает
#include <windows.h> #include <graphics.h> #include <stdio.h> #include <stdlib.h> //прототипы функций void msk(void); void...

Не работает switch
У меня не работает switch $cat = $_GET; switch($cat) { case ($cat>=15 AND $cat<=30 OR $cat=1 ): $ret = 1; ...

7
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
04.10.2016, 17:24
Цитата Сообщение от Mnemonik39 Посмотреть сообщение
scanf("%Г±", &c);
эт чего? замените на c=getch();
0
24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 319
04.10.2016, 17:27  [ТС]
Простите там должно быть
scanf("%c", &c);
К сожалению ваш способ тоже не помогает
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
04.10.2016, 17:34
так и надо говорить "не компилируется" case 'b'??????
0
24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 319
04.10.2016, 17:35  [ТС]
Там просто не стояло двоеточие
Даже если оно стоит - все равно не работает.
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
04.10.2016, 17:48
Лучший ответ Сообщение было отмечено Mnemonik39 как решение

Решение

Цитата Сообщение от Mnemonik39 Посмотреть сообщение
Там просто не стояло двоеточие
это грамматическая ошибка, а не мелочь
все нормально работает .... клаву проверяйте, на ней кнопки разные, раскладки, ну и 'a'!='A'
0
24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 319
04.10.2016, 18:20  [ТС]
Спасибо, разобрался
0
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 4
10.11.2016, 07:58
Не могу понять почему switch работает неверно. Когда переходит в case, если scanf() читает целое число обновляется переменная, затем break прерывает switch и printf() следующие за switch выполняются 2 раза, если при переходе в case scanf() читает a,b,c,q выполняются операторы printf() 1 раз и происходит переход в case A,B,C как будто записывается переменная n вместо i. Как это можно исправить?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[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]
Добавлено через 1 минуту
Хотел лишний код спрятать под спойлер, не получилось, сорри.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2016, 07:58
Помогаю со студенческими работами здесь

Не работает switch
здравствуйте! почему то не работает свитч когда запускаю программу.помогите найти ошибку!заранее благодарен. код программы: //...

Не работает Switch
Собственно вот я набросал програмку, но, во первых доконца не моuу с бейсика перевести участочек кода, а во вторых, где то ошибся в ОДЗ...

Не работает Switch
Уважаемые форумчане, объясните что не так. Нужно определить, является ли первая буква в слове гласной или согласной (русской или...

Не работает switch =(
// 3 lab.cpp: определяет точку входа для консольного приложения. // #include &quot;karta.h&quot; #include &quot;stdafx.h&quot; #include...

Не работает switch
Добрый день! У меня стоит switch case когда человек заходит в корзину смотрит товары далее жмет кнопу &quot;далее&quot; он проходит на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru