Строка: подсчитать количество единиц в группах с нечетным количеством символов - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д