我正在学习如何使用通过指针传递的函数。
我有一个函数,它将一个双d
分成两个部分,whole_part
和fraction_part
。所以“425.25”将被切成“425”和“.25”。
我得到了与传递指针类型相关的错误。我不知道这样的问题是从何而来的。任何帮助都将不胜感激!
#include <math.h>
#include <stdio.h>
#include <limits.h>
void chop(double, long *, double *);
int main(void)
{
double d;
long * whole_part;
double * fraction_part;
printf("enter a double ");
scanf("%lf", &d);
// Call the function
chop(d, &whole_part, &fraction_part);
printf("%.10lf chopped is %ln and %.10lf", d, whole_part, fraction_part);
return 0;
}
void chop(double d, long *whole_part, double *fraction_part)
{
*whole_part = (int)d;
*fraction_part = d - (double)whole_part;
}
发布于 2022-11-07 21:54:07
初步问题:
不应将long
whole_part和double
fraction_part作为它们的变量指针在main中初始化。
函数chop()
在尝试使用指针确定fraction_part
时应该调用指向whole_part
的指针。
#include <stdio.h>
#include <limits.h>
void chop(double, long *, double *);
int main(void)
{
double d;
long whole_part;
double fraction_part;
printf("enter a double ");
scanf("%lf", &d);
// Call the function
chop(d, &whole_part, &fraction_part);
printf("%.10lg chopped is %li and %.10lg\n", d, whole_part, fraction_part);
return 0;
}
void chop(double d, long *whole_part, double *fraction_part)
{
*whole_part = (int)d;
*fraction_part = d - (double)*whole_part;
}
https://stackoverflow.com/questions/74355916
复制