Сделать в switch проверку на цифры\буквы и другие символы - C (СИ)

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

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

Всем привет, не понимаю как сделать в свиче проверку на цифры\буквы и другие символы.
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <conio.h>
  4. #define MIN -10000
  5. #define MAX 10000
  6. main()
  7. {
  8. int key,a,b,c;
  9. float d,x,x1,x2,SqrtD;
  10. //int con_min = -10000,con_max = 10000;
  11. do
  12. {
  13. system("cls");
  14. printf("ax^2 + bx + c = 0");
  15. switch(a)
  16. {
  17. case a >= MIN && a <= MAX :
  18. printf("\nEnter a: ");
  19. scanf("%f",&a);
  20. break;
  21. default:
  22. printf("error. incorrect char");
  23. break;
  24. }
  25. switch(b)
  26. {
  27. case b >= MIN && b <= MAX :
  28. printf("\nEnter b: ");
  29. scanf("%f",&b);
  30. break;
  31. default:
  32. printf("error. incorrect char");
  33. break;
  34. }
  35. switch(c)
  36. {
  37. case c >= MIN && c <= MAX :
  38. printf("\nEnter c: ");
  39. scanf("%f",&c);
  40. break;
  41. default:
  42. printf("error. incorrect char");
  43. break;
  44. }
  45. d = (b * b)- 4 * a * c;
  46. printf("\n%.1f\n\n",d);
  47. if (d<0)
  48. {
  49. printf("D<0. No sqrts\n");
  50. }
  51. if (d==0)
  52. {
  53. x = (-b / 2 * a);
  54. printf("D=0. 1 sqrt : %.1f\n",x);
  55. }
  56. if (d>0)
  57. {
  58. SqrtD = sqrt(d);
  59. x1 = ((-b + SqrtD) / (2 * a));
  60. x2 = ((-b - SqrtD) / (2 * a));
  61. printf("D>0. 2 sqrts:\n");
  62. printf("x1 = %.1f\n",x1);
  63. printf("x2 = %.1f\n",x2);
  64. }
  65. printf("Enter Esc to exit\nSpace to continue\n");
  66. key = _getch();
  67. printf("Your enter a %c\n",key);
  68. }
  69. while (key != 27);
  70. }
можно ли поставить проверку на тип? просто прописывать все цифры тоже не вариант...

Решение задачи: «Сделать в switch проверку на цифры\буквы и другие символы»

textual
Листинг программы
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     int i, sLen;
  10.     char str[1024];
  11.     do
  12.     {
  13.         std::cout<<"\tEnter input string(less than 1024 chars)\r\n";
  14.         std::cin.getline(str,1024);
  15.         sLen = strlen(str);
  16.         //Char analizing
  17.         for(i = 0; i < sLen; i++)
  18.         {
  19.             std::cout<<str[i]<<" : ";
  20.             if(isdigit(str[i]))
  21.                 std::cout<<"is digit\r\n";
  22.             if(isalpha(str[i]))
  23.                 std::cout<<"is alpha\r\n";
  24.             if(isspace(str[i]))
  25.                 std::cout<<"is space\r\n";
  26.             if(ispunct(str[i]))
  27.                 std::cout<<"is punkt\r\n";
  28.         }
  29.  
  30.         std::cout<<"Press Y for new input\r\n";
  31.     }
  32.     while(toupper(getch()) == 'Y');
  33.     return 0;
  34. }

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

  1. Вводится строка, длина которой не превышает 1024 символа.
  2. Происходит анализ каждого символа введенной строки.
  3. Выводится информация о типе каждого символа: цифра, буква, пробел или специальный символ.
  4. Программа продолжается до тех пор, пока пользователь не введет строку Y для нового ввода.

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


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

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

15   голосов , оценка 3.867 из 5

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

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

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