1

我被困在一个我必须编写的程序上。

基本上它会询问用户一个角色,以及他们希望该角色显示多少次。每行只有 10 个字符。我不知道如何在 10 点停止然后继续下一行。

示例输出:

Enter a character: *
Enter the number of characters to display: 36
**********
**********

我目前正在使用 For 循环。

编辑**我的代码

main () {
    int num = 0,i;
    char get_char;

    printf("Enter a character: ");
    scanf("%c", &get_char);

    printf("Enter the number of characters to display: ");
    scanf("%d", &num);


    for (i = 0;i < num; i++) {
        printf("%.10c",get_char);
        i++;
    }
}
4

2 回答 2

5

在打印字符后的当前 for 循环中,添加一个条件:

 for (i = 0;i < num; i++) {
      printf("%c",get_char);
      if((i+1)%10==0) 
          printf("\n");
    }
 }
于 2012-09-20T20:46:02.263 回答
2

要转到下一行,您必须打印出字符,该字符通过使用C 样式字符串中linefeed的转义序列来指示。\n当编译器看到这个序列时,它将使用换行符(其十六进制值为0a)。当终端看到这个字符时,它会将光标移动到下一行。

要检测行尾,您可以使用嵌套for循环或使用模数 ( %) 运算符。

使用嵌套for循环,您可以简单地计算要打印的字符数,并在一个将循环次数的外部循环中打印一个字符最多 10total/10次。

不过,模数运算符在代码中更简洁一些。它计算除操作数后的余数。例如,4 % 2将导致0(4 = 2 * 2 + 0 ) 而5 % 2将导致1(5 = 2 * 2 + 1 )。在您的示例中,您需要检查(i % 10 == 0).

于 2012-09-20T20:45:52.133 回答