【问题标题】:Numbers are printed too far down数字打印得太低了
【发布时间】:2021-10-16 17:36:23
【问题描述】:

我想打印从 1 到 10 的数字旁边的平方数。 我用了\t,但它看起来像\t\v。

printf("n \t\t n*n \t\t s(n) \t\t q(n)");
printf("\n");
int i;
i = 0;

while(i<=10)
{
printf("%d\n",i);
i++;
}

for(i=1; i<=10;i++)
{
printf("\n\t\t%d", i*i);
}

找不到解决方案,我上周刚开始用 C 编码。

n        n*n         s(n)        q(n)
1
2
3        
4        1
5        4
6        9
7        16
8        25
9        36
10       49
         64
         81
         100

【问题讨论】:

  • 请将您的代码作为直接包含在帖子中的文本发布;代码图像在这里效果不佳。
  • 另外,如果可能的话,请提供一个minimal reproducible example,这是一个完整的(但最小的)程序,包括一个函数main和所有#include指令。

标签: c printing


【解决方案1】:

让我们按照您提供的代码进行逻辑操作。

printf("n \t\t n*n \t\t s(n) \t\t q(n)");
printf("\n");

将打印

n                n*n             s(n)            q(n)

现在,在第一个 while 循环之后,您将在新行中打印从 ii=10 的每个数字,从而导致:

0
1
2
...
10

这是有道理的。最后,您正在使用另一个 for 循环和另一个 printf() 调用来打印 n*n,再次在每个条目的新行中。

            1
            4
            9
            ...
            100

您必须注意到printf() 将始终打印一行,并且一旦您使用\n 跳转到下一行,就无法返回到先前打印的行(至少在打印到控制台)。

最简单的解决方法是只使用一个 for 循环来打印和计算特定 i 的所有必要值。打印语句可能类似于:

printf("%d \t\t %d \t\t %d \t\t %d", value1, value2, value3, value4);

【讨论】:

  • 在您的回答中,您写道:"there is no way of going back to the previously printed line" -- 实际上,这并不完全正确。由于 OP 似乎在 Microsoft Windows 平台上,他们可以使用 SetConsoleCursorPosition 跳转屏幕,或者他们可以use console virtual terminal sequences to jump around。但是,您是对的,这在纯 ISO C 中是不可能的。
  • 非常感谢您为像我这样的初学者进行了很好的解释。无法想象我被困在这个问题上多久了。抱歉我的问题的格式,这是我第一次在这里尝试。
【解决方案2】:
#include <stdio.h>

int main() {
printf("n \t\t n*n \t\t s(n) \t\t q(n)");
printf("\n");
int i;
i = 0;

while(i<=10)
{
    printf("%d \t\t %d \n",i,i*i);
    i++;
 }
 return 0;
 }

希望对你有所帮助..

【讨论】:

  • 您可能还想用几句话解释问题出在哪里以及如何修复它,而不是只提供代码答案。
【解决方案3】:
#include <stdio.h>

int main()
{
   for(int i=1;i<=10;i++)
   printf("%d\t%d\n",i,i*i);
   return 0;
}

【讨论】:

  • 您可能还想用几句话解释问题出在哪里以及如何修复它,而不是只提供代码答案。
  • 我刚刚提供了相同的答案并提供了更多解释。 @AbhishekHarsh,尤其是当人们似乎对某种语言不熟悉时,更多的解释可能会帮助他们更好地理解!
猜你喜欢
  • 2022-12-12
  • 1970-01-01
  • 2013-12-11
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2014-07-10
相关资源
最近更新 更多