В строке символов посчитать количество скобок различного вида - C (СИ)
Формулировка задачи:
В строке символов посчитать количество скобок различного вида.
Моя наработка ниже.Вместо того что хочу получаю чушь...
Помогите пожалуйста.
#include <stdio.h> #include <locale.h> #include <string.h> char s[]=""; int n=0; int i; int main() { setlocale(LC_ALL,"Rus"); printf("Введите строку:\n"); gets(s); int k=strlen(s); //Подсчёт всего задания веду через переменную n for (i=0;i<=k;i++) { if(s[i]=='('||s[i]==')'||s[i]=='{'||s[i]=='}'||s[i]=='['||s[i]==']') n++; } printf("%d",n); }
Решение задачи: «В строке символов посчитать количество скобок различного вида»
textual
Листинг программы
#include <iostream> void main () { char line[80], brackets[]="[{()}]"; int count=0; std::cout<<"Input string"<<std::endl; std::cin>>line; for (int i=0; i<strlen(line); i++) if (strchr(brackets,line[i])) count++; std::cout<<"All brackets "<<count<<std::endl; system ("pause"); }
Объяснение кода листинга программы
В этом коде:
- Объявляется массив символов
line
размером 80 и массив символовbrackets
размером 10. - Инициализируется переменная
count
нулем. - Выводится сообщение
Input string
и производится ввод строки с клавиатуры в массивline
. - Происходит цикл по всем символам строки
line
. - Если текущий символ является одним из символов скобок
[{()}]
, то переменнаяcount
увеличивается на единицу. - После окончания цикла выводится количество найденных скобок.
- Производится пауза, чтобы пользователь мог увидеть результат. Ошибки в коде:
- В языке C функция
main
должна возвращать значение типаint
, а неvoid
. - В языке C строки следует сравнивать с использованием функции
strcmp
, а неstrchr
. - В цикле есть условие
i<strlen(line)
, которое является лишним, так как по умолчанию цикл выполняется до тех пор, покаi
меньшеstrlen(line)
. - Нет проверки на то, что введенная строка была корректной (содержит только символы
[{()}]
). - Нет обработки ошибок при вводе и выводе данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д