Сделать в switch проверку на цифры\буквы и другие символы - C (СИ)
Формулировка задачи:
Всем привет, не понимаю как сделать в свиче проверку на цифры\буквы и другие символы.
можно ли поставить проверку на тип? просто прописывать все цифры тоже не вариант...
Листинг программы
- #include <stdio.h>
- #include <math.h>
- #include <conio.h>
- #define MIN -10000
- #define MAX 10000
- main()
- {
- int key,a,b,c;
- float d,x,x1,x2,SqrtD;
- //int con_min = -10000,con_max = 10000;
- do
- {
- system("cls");
- printf("ax^2 + bx + c = 0");
- switch(a)
- {
- case a >= MIN && a <= MAX :
- printf("\nEnter a: ");
- scanf("%f",&a);
- break;
- default:
- printf("error. incorrect char");
- break;
- }
- switch(b)
- {
- case b >= MIN && b <= MAX :
- printf("\nEnter b: ");
- scanf("%f",&b);
- break;
- default:
- printf("error. incorrect char");
- break;
- }
- switch(c)
- {
- case c >= MIN && c <= MAX :
- printf("\nEnter c: ");
- scanf("%f",&c);
- break;
- default:
- printf("error. incorrect char");
- break;
- }
- d = (b * b)- 4 * a * c;
- printf("\n%.1f\n\n",d);
- if (d<0)
- {
- printf("D<0. No sqrts\n");
- }
- if (d==0)
- {
- x = (-b / 2 * a);
- printf("D=0. 1 sqrt : %.1f\n",x);
- }
- if (d>0)
- {
- SqrtD = sqrt(d);
- x1 = ((-b + SqrtD) / (2 * a));
- x2 = ((-b - SqrtD) / (2 * a));
- printf("D>0. 2 sqrts:\n");
- printf("x1 = %.1f\n",x1);
- printf("x2 = %.1f\n",x2);
- }
- printf("Enter Esc to exit\nSpace to continue\n");
- key = _getch();
- printf("Your enter a %c\n",key);
- }
- while (key != 27);
- }
Решение задачи: «Сделать в switch проверку на цифры\буквы и другие символы»
textual
Листинг программы
- #include <iostream>
- #include <cstdlib>
- #include <conio.h>
- using namespace std;
- int main()
- {
- int i, sLen;
- char str[1024];
- do
- {
- std::cout<<"\tEnter input string(less than 1024 chars)\r\n";
- std::cin.getline(str,1024);
- sLen = strlen(str);
- //Char analizing
- for(i = 0; i < sLen; i++)
- {
- std::cout<<str[i]<<" : ";
- if(isdigit(str[i]))
- std::cout<<"is digit\r\n";
- if(isalpha(str[i]))
- std::cout<<"is alpha\r\n";
- if(isspace(str[i]))
- std::cout<<"is space\r\n";
- if(ispunct(str[i]))
- std::cout<<"is punkt\r\n";
- }
- std::cout<<"Press Y for new input\r\n";
- }
- while(toupper(getch()) == 'Y');
- return 0;
- }
Объяснение кода листинга программы
- Вводится строка, длина которой не превышает 1024 символа.
- Происходит анализ каждого символа введенной строки.
- Выводится информация о типе каждого символа: цифра, буква, пробел или специальный символ.
- Программа продолжается до тех пор, пока пользователь не введет строку
Y
для нового ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д