c - 为什么我在这个程序中使用指针时会得到垃圾? C语言

标签 c function pointers garbage

我是一名试图掌握 C 语言语法的 C++ 程序员,但我不明白为什么在该函数中使用指针时会得到垃圾值。

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

void separate(double, double *dollar, double *quarter, double *dime, double *nickle,  double *penny);
int
main(void)
{
double amount = 38.39, change, paid = 40.0, dollar, quarter, dime, nickle, penny;

change = paid - amount;
separate(change, &dollar, &quarter, &dime, &nickle, &penny);

printf("Your total change is: $%d\n", change);
printf("Dollars: %d\n", dollar);
printf("Quarters: %d\n", quarter);
printf("Dimes: %d\n", dime);
printf("Nickles: %d\n", nickle);
printf("Pennies: %d\n", penny);

getchar();
return (0);
}

void separate(double change, double *dollar, double *quarter, double *dime, double *nickle, double *penny)
{
double coins;
coins = change - floor(change);
*dollar = floor(change);
*quarter = coins / 25;
coins = coins - (*quarter * 25);
*dime = coins / 10;
coins = coins - (*dime * 10);
*nickle = coins / 5;
*penny = coins - (*nickle * 5);
}

最佳答案

您正在使用 %d 打印 double !试试 %f

printf("Your total change is: $%f\n", change);
printf("Dollars: %f\n", dollar);
printf("Quarters: %f\n", quarter);
printf("Dimes: %f\n", dime);
printf("Nickles: %f\n", nickle);
printf("Pennies: %f\n", penny);

关于c - 为什么我在这个程序中使用指针时会得到垃圾? C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537997/

相关文章:

function - PostgreSQL 函数错误

c - 在第一个函数中传递指向多个函数和内存分配的指针

c++ - 将返回的指针分配给另一个返回的指针?

c - C 中的指针、文件和内存管理

c++ - 最简单的 QT TCP 客户端

c++ - gdb 7.0 警告 : Wrong size fpregset in core file

c - 在 Visual Studio 2005 中使用 WinDDK 测试实用程序

c - 将字符串传递给 C 中的函数 - 带或不带指针?

python - 绘制Python数据框列

c - AVL 树插入(在 C 中)失败