В строке символов посчитать количество скобок различного вида - 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");
}

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

В этом коде:

  1. Объявляется массив символов line размером 80 и массив символов brackets размером 10.
  2. Инициализируется переменная count нулем.
  3. Выводится сообщение Input string и производится ввод строки с клавиатуры в массив line.
  4. Происходит цикл по всем символам строки line.
  5. Если текущий символ является одним из символов скобок [{()}], то переменная count увеличивается на единицу.
  6. После окончания цикла выводится количество найденных скобок.
  7. Производится пауза, чтобы пользователь мог увидеть результат. Ошибки в коде:
  8. В языке C функция main должна возвращать значение типа int, а не void.
  9. В языке C строки следует сравнивать с использованием функции strcmp, а не strchr.
  10. В цикле есть условие i<strlen(line), которое является лишним, так как по умолчанию цикл выполняется до тех пор, пока i меньше strlen(line).
  11. Нет проверки на то, что введенная строка была корректной (содержит только символы [{()}]).
  12. Нет обработки ошибок при вводе и выводе данных.

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы