2016-09-16 1 views
-3

こんにちは、これは私の解決策は、私はあなたが私を助けてください..can私が間違っていましたかわからない1759URIオンラインジャッジ| 1759ホーホーホー

#include <stdio.h> 
int main() 
{ 
    int i,j; 
    scanf("%d", &i); 
    for (j=1;j<=i;j++) 
    { 
     printf("Ho "); 

     while (j==i) 
     { 
      printf("\b"); 
      printf("!"); 
      break; 
     } 
    } 
    return 0; 
} 

URIにするのですか? https://www.urionlinejudge.com.br/judge/en/problems/view/1759

+0

'「缶あなたは私を助けてください? " - あなたが直面している問題の説明がなく、問題を示すコードはありません。 – David

+2

バックスペースを印刷するのは間違った答えです。裁判官は端末のためにそれを偽造することについて何も言わなかったが、あなたの正確な出力をリダイレクトし、正しい答えに対してそれをチェックする。これは '\ b'を含んでいない。それぞれの 'Ho'の後に1文字を出力しなければならず、その文字は' space'か '!'です。したがって、最初のループの文字を設定し、最後のループの文字を変更することができます。または、最初のループを除くすべてのループにスペースを出力し、 '!'で終了することができます。しかし、これが挑戦だから、私はあなたにコードを与えることはありません。 –

+0

おかげで!とった –

答えて

1

あなたのソリューションは正しいを見ても、問題のリンクは、それがためにあなたがバックスペースを挿入することにより、消去末尾のスペースで、所望の出力に同じではありません。だから、解決策が..私は本当に使用することをお勧めしないもの、ということを行う1つの方法をスペースを末尾ことを消去することを避けるために、あなたのロジックをクラフトし直すことであり、このようなものです:

#include <stdio.h> 
int main() 
{ 
    int i,j; 
    scanf("%d", &i); 
    for (j=1;j<=i;j++,printf("Ho%s",(j>i)?"!":" ")); 
    return 0; 
}