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