что не так с этой функцией print_repeat? - PullRequest
0 голосов
/ 22 ноября 2010

print_repeat должен распечатать строку s, но повторить i-й символ i раз (начиная с 1).
Поэтому print_repeat («this») должно печатать thhiiissss

int print_repeat(char s[]){
    int i,j;

     i = 0;
     while (s[i] != '\0');{
         for (j = 1; j <= i+1; j+1){
             putchar(s[i]);
         }
    }
    return 0;
}

void main()
{
    print_repeat("this");
}

Ответы [ 3 ]

3 голосов
/ 22 ноября 2010

Найдите правильный код ниже:

    while (s[i] != '\0')
    { 
      for (j = 1; j <= i+1; j++)
      { 
        putchar(s[i]); 
      } 
     i++;
   } 

Основными проблемами были: 1. Не увеличивать переменную i внутри цикла while 2. Переменная j увеличивается неправильно 3. Сразу же после этого появляется точка с запятой, что неверно.

Предложение: попробуйте отладить ваш код. Это поможет вам учиться быстрее.

2 голосов
/ 22 ноября 2010

В вашем коде print_repeat вы никогда не увеличите i в цикле while, что приведет к бесконечным циклам.

0 голосов
/ 22 ноября 2010

добавить "i ++;" в конце цикла while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...