首页 > 解决方案 > 如何划分数组中类型“双”变量的数字?

问题描述

这是我第一次使用 Stack Overflow 提问。我创建了这段代码来划分数组中数字的位数:


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int *getArray(int number);

int main(void)
{  
  int *x = getArray(1234);
  printf("%i", x[0]);
}
  
int *getArray(int number)
{
  int n = floor(log10(number)) + 1;
  int *receive = calloc(n, sizeof(int));
  
  for(int i=0; i<n; i++, number/=10)
  {
    receive[i] = number%10;
  }
  return receive;
}

它对整数工作得很好,但我尝试将它用于大数但它没有工作(我只是将一些'int'更改为'double'):


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

double *getArray(double number);

int main(void)
{  
  double *x = getArray(100);
  printf("%f", x[0]);
}
  
double *getArray(double number)
{
  int n = floor(log10(number)) + 1;
  double *receive = calloc(n, sizeof(double));
  
  for(int i=0; i<n; i++, number/=10)
  {
    receive[i] = number%10;
  }
    
  return receive;
}

有谁知道我做错了什么?谢谢。

标签: arrayscintegerdoubledigits

解决方案


推荐阅读