代码块超时:反转字符串的程序(例如,cd将被反转为ba dc)

时间:2011-03-07 22:20:12

标签: string timeout codeblocks

这是程序的link,它给出了错误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 :(得分:0)

你的while循环递增n和len都检查a [i]是'\ 0'还是''而不改变循环体中的i。他们应该检查[n]或[len]是否是你想要的,因为n和len是在循环中递增的值。