【问题标题】:Array output difficulties阵列输出困难
【发布时间】:2018-12-04 17:06:16
【问题描述】:

我一直在练习数组,但遇到了一个我似乎无法找到答案的问题。我正在尝试显示用户输入的数字,但结果并没有像我预期的那样。它应该是列的形式。

#include <stdio.h>
int main (void)
{
   double A[5], B[5];
   int i;
   for (i=0; i<=4; i++)
   {
    printf("Enter 5 numbers for column A: ");
    scanf("%lf", &A[i]);
   }
   for (i=0; i<=4; i++)
   {
    printf("Enter 5 numbers for column B: ");
    scanf("%lf", &B[i]);
   }
   printf("A = (%f)  B = (%f) \n", A[i], B[i]);
   return 0;
}

printf 语句似乎是正确的,但是输出中没有显示数字。

【问题讨论】:

  • 一些rubber duck debugging 在这里可能有用。提示:你读了多少次输入?您打印输出多少次?
  • 在main后面加个括号,你忘了。
  • @Someprogrammerdude 有答案,我想
  • 当您调用 printf 时,i == 5。当然我假设您的目标是打印每个数组的最后一个数字,对吧?

标签: c arrays output


【解决方案1】:

您应该问自己,在打印最终输出时,i 的值是多少。 您还应该问自己,ABindex i 中的数组是什么。

如果理解了这些,我们就可以以与填充相同的方式显示数组的内容。

#include <stdio.h>
int main (void)
{
  double A[5], B[5];
  int i;
  for (i=0; i<=4; i++)
    {
      printf("Enter 5 numbers for column A: ");
      scanf("%lf", &A[i]);
    }
  for (i=0; i<=4; i++)
    {
      printf("Enter 5 numbers for column B: ");
      scanf("%lf", &B[i]);
    }
  for (i=0; i<=4; i++)
    {
      printf("A = (%f)  B = (%f) \n", A[i], B[i]);
    }
  return 0;
}

【讨论】:

    【解决方案2】:

    正如@Tsakiroglou Fotis 所说,您忘记在 main 函数之后添加括号,并且您没有循环最终的 print 语句来打印所有元素。尝试使用能够处理此类错误的编辑器。这是您更正的代码

    #include <stdio.h>
    int main (void){
    double A[5], B[5];
    int i;
    for(i=0; i<=4; i++)
    {
        printf("Enter 5 numbers for column A: ");
        scanf("%lf", &A[i]);
    }
    for(i=0; i<=4; i++)
    {
        printf("Enter 5 numbers for column B: ");
        scanf("%lf", &B[i]);
    }
    
    for(i=0; i<5; i++){
      printf("A = (%f)  B = (%f) \n", A[i], B[i]);
    }
    return 0;
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2019-02-23
      • 2013-03-14
      相关资源
      最近更新 更多