Определить участки постоянства и вывести их на экран - C (СИ)
Формулировка задачи:
Добрый день ! Суть задания такая , необходимо чтобы программа считывала с клавиатуры числа, после того как я ввожу -1 , цикл прерывался и она считала количество постоянств (0000,1111,2222222,33 и т.д.) и выводила их на экран.
С подсчетом проблему я решил, а вот с выводом получается какая то белеберда (
Глаз уже замылился , посмотрите в чем ошибка пожалуйста.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int x,x2,k=0,j=0,i=0; const int u = 100; char str[u]; printf("Vvedite chislo :"); scanf("%d",&x); x2=-1; for(i; x != -1; i++){ if(x==x2){ k++; /*считаем количество повторов если x==x2 */ str[i]=x2; /*записываем число в строку */ x2=x; printf("Vvedite chislo :"); scanf("%d",&x); continue; } else{ if(str[i-1]!='\n') /*если \n первый раз то записываем в строку \n */ str[i]='\n'; else i--; x2=x; printf("Vvedite chislo :"); scanf("%d",&x); } if(k>0){ j++; /*если счетчик k>0 то плюсуем k+1 */ k=0;/*обнуляем k*/ } } if(k>0){ j++; k=0; } str[i]='\0';/*записываем конец строки*/ printf("\n%s",str); printf("\nUchastkov monotonnosti : %d\n",j); return 0; }
Решение задачи: «Определить участки постоянства и вывести их на экран»
textual
Листинг программы
str[i]=x2; /*записываем число в строку */
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д