为什么程序没有正确地输入输入

时间:2013-06-01 10:00:03

标签: c arrays

#include <stdio.h>

main()
{
  int i, t , l[100] , b[100] ;

  scanf("%d",&t);

  for(i=0 ; i < t ; i++)
  {
    scanf("%d %d",&l[i],&b[i]);
  }

  for(i=0 ; i < t ; i++)
  {
    printf("%d %d",l[i],b[i]);
  }
}

为什么程序没有正确输入。

例如, 如果t = 2,则应扫描l和b阵列两次并打印两次。那没有发生。

2 个答案:

答案 0 :(得分:0)

  for(i=0 ; i < t ; i++)
  {    
    scanf("%d%d",&l[i],&b[i]); //remove space
  }

  for(i=0 ; i < t ; i++)
  {
    printf("%d %d",l[i],b[i]);
    puts("");  //just adding a new line
  }
也许你误解了这些数字 b [i] l [i + 1](一起打印)为一个。

答案 1 :(得分:0)

该程序首先需要一个整数 d ,它定义了在 l b 两个数组中扫描和打印的元素数量。

会话示例:

3
1 2
3 4
5 6

输出

1 23 45 6

您可能想在printf中添加\n

printf("%d %d\n",l[i],b[i]);

获得该输出

1 2
3 4
5 6

但此外,该程序的输出似乎与阅读代码后乍看之下的预期一致。似乎没有一个大错误(直到你尝试输入 d > 100的数据 - 从第101个元素开始,程序将出现意外行为)。

如果输出不符合您的期望,则必须相应地修改程序。也许你可以根据上面的输入告诉我们你想要什么样的输出,我们将提供解决方案。