Тайм-аут в кодовых блоках: программа для перестановки строки (например, CD будет возвращен в Ba dc) - PullRequest
0 голосов
/ 08 марта 2011

Вот ссылка на программу, выдающую ошибку Timeout

Та же программа:

void reverse(char a[],int slen, int elen)
 {
     int start,end,temp;
     for(start=slen,end=elen;start<end;start++,end--)
            {
                temp=a[start];
                a[start]=a[end];
                a[end]=temp;
            }
 }

 void reverseall(char a[])
  {
      int i,n=0,len=0;
      for(i=0;i<20;i++)
        while(a[i]!='\0')
            n++;
      for(i=0;i<n;i++)
       {
           while(a[i]!= ' ')
                len++;
           reverse(a,i-len,i-1);
       }
      for(i=0;i<n;i++)
        cout<<a[i];
  }
int main()
 {
     char a[20]="hi how are you";
     reverseall(a);
     return 0;
 }

В чем может быть причина?Спасибо!

1 Ответ

0 голосов
/ 08 марта 2011

Оба ваших цикла while, увеличивающие n и len, проверяют, что [i] равен '\ 0' или '', не меняя i в теле цикла.Они должны проверять, что вам нужно: [n] или [len], поскольку n и len - это значения, которые увеличиваются в цикле.

...