数字打印得太靠下

Numbers are printed too far down

我想打印 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
#include <stdio.h>

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

让我们从逻辑上遵循您提供的代码。

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

希望对您有所帮助..