Строка: подсчитать количество единиц в группах с нечетным количеством символов - C (СИ)

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

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

Доброго времени суток. Дана строка, состоящая из групп нулей и единиц. Подсчитать количество единиц в группах с нечетным количеством символов.
Сколько не пробовал - не получалось. В чем ошибка? Подскажите, знающие, чайнику.
#include <stdio.h>
#include <conio.h>
 
void main()
{
   char st[30];
   int n=0,k=0;
   printf("Vvod stroki:");
   gets(st);
   for(int i=0;st[i]!='\0';i++)
   {
       do
       {
            n++;
       }while(st[i]!=' ');
           if(n%2!=0)
                 {
                     if (st[i]=='1') 
                     k++;
                 }
                     printf("%d",k);
                     k=0;
                     n=0;
        if (st[i]==' ')
           i++;    
   }
   getch();
}

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int ones_count(const char * s) {
    return ( *s ) ? *s - '0' + ones_count(s + 1) : 0;
}
 
#define DELIM " \t\n"
 
int main(void) {
    char str[] = "001 111 0111010 011111", * p;
    
    for ( p = strtok(str, DELIM); p; p = strtok(NULL, DELIM) )
        if ( strlen(p) & 1 )
            printf("%s - %d\n", p, ones_count(p));
    
    return 0;
}

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


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

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

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