这个print_repeat函数有什么问题?

时间:2010-11-22 07:49:25

标签: c

print_repeat应打印出字符串s,但重复第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 个答案:

答案 0 :(得分:3)

在下面找到正确的代码:

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

主要问题是: 1.在循环中不增加变量i 2.变量j未正确递增 3.之后有分号,这是不正确的。

建议:尝试调试代码。这将有助于您更快地学习。

答案 1 :(得分:2)

print_repeat代码中,您永远不会在i循环中增加while,这会导致无限循环。

答案 2 :(得分:0)

添加“i ++;”在while循环结束时。