for循环仅在scanf之后迭代一次printf

时间:2019-05-15 10:01:44

标签: c for-loop printf scanf

我想使用带有循环的for循环来存储数组元素,但是制表符只打印一次,然后就不起作用了。 代码如下-

#include<stdio.h>
#include<conio.h>
void main()
{
  int i,a[10];
  clrscr();
  printf("Enter array elements: \n");
  for(i=0;i<5;i++)
  {
     scanf("%d",&a[i]);
     printf("\t");
  }
  getch();
}

以上代码的输出是- Output of above code in TurboC++

我也尝试了CodeBlocks,但是输出是相同的。 另一方面,当我使用此代码时-

#include<stdio.h>
int main()
{
  int i,a[5]={1,2,3,4,5};
  for(i=0;i<5;i++)
  {
     printf("%d",a[i]);
     printf("\t");
  }
  return 0;
}

输出如下- Compilor-CodeBlocks.

为什么代码的输出不同?

1 个答案:

答案 0 :(得分:2)

在第一个代码中,输入每个输入后按Enter键,因此在每个输入后都会看到新行。

在第二个代码中,您不是通过代码或手动打印换行符。

要打印新行,请在\n后面附加以下内容。

 printf("\t\n");