Не работает оператор switch. - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет всем. Реализую в программе кое-что при помощи оператора switch. Пересмотрел материал, вроде все делаю правильно (там акцент на то, чтобы проверяемая переменная была целочисленным типом) , а оно почему-то не заходит туда, куда должно. Делаю на Visual C++ 2008 Express. Присваиваю переменной значение ноль - k=0; после этого вставляю эту переменную в условие switch; в одном из условий делаю case '0' , а оно не срабатывает. даллее выводит то, что должно выполняться при default. Ниже , привел интересующий кусок проги. Заранее благодарю.
Листинг программы
  1. include "stdafx.h"
  2. #include<stdio.h>
  3. #include"conio.h"
  4. #include<string.h>
  5. #include"iostream"
  6. #include<time.h>
  7. #include<stdlib.h>
  8. #include<fstream>
  9. using namespace std;
  10. int main()
  11. {
  12. int a,b=0, c=4, i=0 ,j=0,m[20][30],povorot_c=0 , k;
  13. FILE *fp;
  14.  
  15. animal[0].n=0;
  16. k=animal[0].n;
  17. printf("%d",k); // здесь оно выводит то, что должно выводить
  18. printf("\n");
  19. if ((strcmp("sh",cc))==0){
  20. animal[0].cc++;
  21. // сюда вставлял - тоже выводит то, что прошу вывести
  22. A:
  23. if (povorot_c<4) {
  24. // и здесь выводит то, что прошу вывести - проверял
  25. switch (k)
  26. {
  27. case '0':
  28. printf("%d",11111); // а вот здесь не хочет почему-то выводить!
  29. printf("\n");
  30. break;
  31. default:
  32. printf("%d",222); // и вот здесь выводит то, что должно выводить
  33. printf("\n");
  34. break;
  35. }
  36. }
  37. }
  38. getch();
  39. return 0;
  40. }

Решение задачи: «Не работает оператор switch.»

textual
Листинг программы
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3.  
  4. #pragma comment(lib,"Winmm.lib")
  5.  
  6. #define delay 1
  7.  
  8. int _tmain(int argc, _TCHAR* argv[])
  9. {
  10.     DWORD tm1,tm2;
  11.  
  12. for(int i=0;i<10;i++)
  13. {
  14.     printf("\n Thread 1 \n");
  15. // Функция  timeGetTime  извлекает системное время в миллисекундах.
  16. // Системное время - это время, истекшее с момента старта  Windows 
  17.    
  18.     tm1=tm2= timeGetTime();
  19.     while((tm2-tm1)<delay)
  20.     {
  21.      printf("-");
  22.     tm2= timeGetTime();
  23.     }
  24.    printf("\n time   %d mS\n",tm2-tm1);
  25.     printf("\n Thread 2 \n");
  26.     tm1=tm2= timeGetTime();
  27.     while((tm2-tm1)<delay)
  28.     {
  29.      printf("+");
  30.     tm2= timeGetTime();
  31.     }
  32.    printf("\n time   %d mS\n",tm2-tm1);
  33. }
  34.     system("pause");
  35. return 0;
  36. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек и заголовочных файлов.
  2. Определение константы delay, которая задает задержку в миллисекундах.
  3. Главная функция программы main(), принимающая два аргумента: argc и argv.
  4. Объявление двух переменных типа DWORD с именами tm1 и tm2, которые используются для измерения времени.
  5. Использование цикла for для повторения кода 10 раз.
  6. Внутри цикла выводится сообщение Thread 1 и начинается измерение времени с помощью функции timeGetTime().
  7. Затем используется цикл while, который выполняется до тех пор, пока время выполнения не превысит значение переменной delay.
  8. Внутри цикла выводится символ -, а затем измеряется время выполнения с помощью функции timeGetTime().
  9. После окончания внутреннего цикла выводится сообщение Thread 2 и начинается измерение времени.
  10. Затем используется аналогичный цикл while, но внутри него выводится символ +.
  11. После окончания внутреннего цикла выводится сообщение time   mS, где mS - это сокращение от миллисекунд.
  12. Значение переменной tm2-tm1 преобразуется в строку с помощью функции printf().
  13. После окончания внешнего цикла программа ожидает нажатия клавиши с помощью функции system(pause).
  14. Возврат значения 0, что означает успешное выполнение программы.
  15. Код не использует оператор switch, поэтому его можно исключить из рассмотрения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы