2016-09-16 15 views
-3

你好,這是我的解決方案,以URI 1759URI Online Judge | 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; 
} 

我不知道我錯了..can請你幫我?問題的鏈接https://www.urionlinejudge.com.br/judge/en/problems/view/1759

+0

'「即可你請幫助我嗎?「 - 不是沒有描述你正在面對的問題,也沒有代碼來證明問題,沒有。 – David

+2

打印退格是錯誤的答案。法官沒有說任何關於僞造終端的信息,但是會重定向你的確切輸出,並根據正確的答案對其進行檢查,該答案不包含任何'\ b'。您必須在每個「Ho」後面打印一個字符,並且該字符是「空格」或「!」。因此,您可以爲第一個循環設置該字符並將其更改爲最後一個循環。或者,您可以在除第一個循環之外的所有循環中輸出空格,並用'!'結束。但是,作爲一項挑戰,我不會給你任何代碼。 –

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