Строка: подсчитать количество единиц в группах с нечетным количеством символов - 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;
}