2016-09-16 2 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 '뒤에 한 문자를 인쇄해야하며 그 문자는'space' 또는'!'중 하나입니다. 따라서 첫 번째 루프의 문자를 설정하고 마지막 루프의 문자를 변경할 수 있습니다. 또는 첫 번째 루프를 제외한 모든 루프에서 공백을 출력하고 '!'로 끝낼 수 있습니다. 그러나이 도전으로, 나는 당신에게 어떤 코드도주지 않을 것이다. –

+0

감사합니다. 알았다 –

답변

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; 
}