2010-11-22 4 views
0

print_repeatは文字列sを出力しますが、i番目の文字をi回繰り返します(1から数え始めます)。
(「本」)だから、print_repeatがあなたのprint_repeatコードでこのprint_repeat関数で何が問題になっていますか?

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"); 
} 
+4

これは 'star_vowels'です。 'print_repeat'はどこですか? – kennytm

+1

私はKennyTMの2番目の話をうなずきますが、主に指摘したいのは、 'void main()'を使わないでください。それは標準に準拠していません。 – birryree

+0

申し訳ありませんが、間違ったコードをつかみました –

答えて

3

下記正しいコード検索:主な問題はなかった

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

を: ループ 2変数Jが正しく 3.セミコロンは右後ありインクリメントされていない状態1.変数内部Iが増加していません間違っています。

提案:コードをデバッグしてみてください。それはより速く学ぶのに役立ちます。

+0

なぜiを1から初期化しないのですか?条件をj <= i? –

+0

@Fahad、私は0にする必要がありますか?それ以外の場合は、文字列の最初の文字は印刷できません。 jを0から初期化し、条件をj <= iに変更することを意味しますか?私は人が無害でなければならないと思う。 – Jay

+0

@ jay私はi = 1を初期化しようとしていました。 –

2

thhiiissss印刷する必要があり、あなたは無限ループにつながることになる、あなたのwhileループでiをインクリメントすることはありません。

0

"i ++;" whileループの終わりです。

関連する問題