2016-09-16 62 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; 
}