首页 > 解决方案 > C程序中的双数组输出

问题描述

我似乎陷入了一个非常简单的问题,但我无法解决它并理解为什么。下面是我的代码:

#include <stdio.h>
#define SIZE 8

int main(void){
  int i, j;
  double nums[SIZE];
  double input;
  
  printf("Enter 8 doubles: ");
  for (i = 0; i < SIZE; i++){
    nums[i] = scanf("%lf", &input);
  }

  for (i = 0; i < SIZE; i++){
    printf("%lf ", nums[i]);
  }

  return 0;
}

下面是我得到的结果:

Enter 8 doubles: 1 2 3 4 5 6 7 8
1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000

我的代码的主要问题是什么?谢谢!

标签: arrayscloopsscanf

解决方案


试试这个,你应该用 scanf 读取变量中的数据,因为从 scanf 返回的是成功读取的参数列表的项目数:

 #include <stdio.h>
 #define SIZE 3

 int main(void){
   int i, j;
   double nums[SIZE];
   double input;

   printf("Enter 8 doubles: ");
   for (i = 0; i < SIZE; i++){
     scanf("%lf", &input);
     nums[i] = input;// or scanf("%lf", &num[i]); 
   }

   for (i = 0; i < SIZE; i++){
     printf("%lf ", nums[i]);
   }

   return 0;
 }

推荐阅读