gpt4 book ai didi

c - 麻烦制作一个计算器,它可以告诉我 C 中两个数字的商的分数和小数形式

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:05 25 4
gpt4 key购买 nike

编写一个程序,允许用户乘除成对的整数分数,并提供结果分数和小数表示形式为带 2 位小数的 double 。

我会在下面放一些我试过的代码

#include <stdio.h>

int
main(void) {

int a, b, c, d, g, h, j, k;
double e, f, l, m, n, o;

//lets get our inputs//
printf("Whats the first numerator:");
scanf_s("%d", &a);

printf("whats the first denominator(cannot be zero):");
scanf_s("%d", &b);

printf("whats the second numerator:");
scanf_s("%d", &c);

printf("whats the second denominator(cannot be zero):");
scanf_s("%d", &d);

//calulate the division
(__int64)e = (a / b);
(__int64)l = (d / c);
(__int64)m = e * l;
//calculate the multiplication
(__int64)f = (__int64)(a / b) * (__int64)(c / d);
//im just gonna display the actual value of numerator * numerator
g = (a * c);
//same for the denominator
h = (b * d);
//handled the fraction for multiplying so now its time to make the keep change flip

j = (a * d);
k = (b * c);

printf("\n(%d/%d) / (%d/%d): the resulting fraction is %d/%d\nthe decimal representation is %.2f\n", a, b, c, d, j, k, m);

printf("\n(%d/%d) * (%d/%d): the resulting fraction is %d/%d\nthe decimal representation is %.2f\n\n", a, b, c, d, g, h, f);

return(0);

}

所以我很确定发生的事情是,我通过将整数转换为 double ,从 4 字节值变为 8 字节值,但我仍然不知道如何将其转换为更大的值字节大小,但 Visual Studio 表示此 (__int64) 修复了它。我的分数输出仍然有效,但我的小数始终显示为 0.00,这是因为当转换值从 4 个字节增加到 8 个字节时,该值丢失了。 (如果我对此有任何错误,请纠正我的理解,以便我在 comp sci 方面总体上做得更好。)

最佳答案

(__int64)f = (__int64)(a / b) * (__int64)(c / d);

这就是问题所在..

首先,学习使用标准符号而不是 Microsoft 特定的符号,例如 (__int64),它实际上与 long long int 相同,但可能需要在标准工具链上专门替换。其次,您将 double 类型转换为 int,然后想知道小数点去了哪里。 %d 也用于整数。如果您没有转换为整数,它仍然不会采用十进制值。

此类问题会引起反对票。我建议您先使用调试器调试您的代码。祝你好运:)

顺便说一句,代码就这么简单,

#include <stdio.h>

main(argc,argv)
const char** argv;
{
int numer1 = 0;
int denom1 = 0;
int numer2 = 0;
int denom2 = 0;
scanf("%d %d %d %d ",&numer1,&denom1,&numer2,&denom2); //don't forget zero logic
double frac1 = (double)numer1/(double)denom1;
double frac2 = (double)numer2/(double)denom2;
printf ("Whatever you want to print....");
return 0;
}

也学会使用good nomenclature

关于c - 麻烦制作一个计算器,它可以告诉我 C 中两个数字的商的分数和小数形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58128031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com