gpt4 book ai didi

c++ - 如何在使用模数将十进制值转换为货币时使程序编译?

转载 作者:行者123 更新时间:2023-12-02 09:55:14 25 4
gpt4 key购买 nike

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

2年前关闭。




Improve this question




我不知道如何编译我的程序,我是编程新手。

我想知道我是否可以通过调整 printf 来编译或者如果我需要其他功能。

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
int V = 0;
scanf("%d", &V);
printf("NOTAS: \n");
printf("%d Nota(s) de R$ 100.00\n", V / 100);
printf("%d Nota(s) de R$ 50.00\n", V % 100 / 50);
printf("%d Nota(s) de R$ 20.00\n", V % 100 % 50 / 20);
printf("%d Nota(s) de R$ 10.00\n", V % 100 % 50 % 20 / 10);
printf("%d Nota(s) de R$ 5.00\n", V % 100 % 50 % 20 % 10 / 5);
printf("%d Nota(s) de R$ 2.00\n", V % 100 % 50 % 20 % 10 % 5 / 2);

printf("MOEDAS: \n");
printf("%d Moeda(s) de R$ 1.00\n", V % 100 % 50 % 20 % 10 % 2 / 1);
printf("%.2lf Moeda(s) de R$ 0.50\n", V % 100 % 50 % 20 % 10 % 2 % 1 / 0.50);
printf("%.2lf Moeda(s) de R$ 0.25\n", V % 100 % 50 % 20 % 10 % 2 % 1 % 0.50 / 0.25);

return 0;
}

最佳答案

在行

printf("%.2lf Moeda(s) de R$ 0.25\n", V % 100 % 50 % 20 % 10 % 2 % 1 % 0.50 / 0.25);
^^^^^^

您不能使用带十进制值的模数,它必须是整数。

请注意 .50.25无法按预期工作,因为如果您输入十进制值,它将被截断并存储为整数,因为 Vint .

您可以做的一件事是分别解析整数值和十进制值的值,然后从那里获取。

就像是:

Live sample
#include <iostream>
#include <sstream>
#include <string>

int main()
{
int value[2], i = 0;
std::string V, temp;

getline(std::cin, V);
std::stringstream ss(V);
while (getline(ss, temp, '.') && i < 2) //tokenize stream by '.'
{
value[i++] = std::stoi(temp); //convert to integer
}

printf("NOTAS: \n"); //you can replace all these with std::cout
printf("%d Nota(s) de R$ 100.00\n", value[0] / 100);
printf("%d Nota(s) de R$ 50.00\n", value[0] % 100 / 50);
printf("%d Nota(s) de R$ 20.00\n", value[0] % 100 % 50 / 20);
printf("%d Nota(s) de R$ 10.00\n", value[0] % 100 % 50 % 20 / 10);
printf("%d Nota(s) de R$ 5.00\n", value[0] % 100 % 50 % 20 % 10 / 5);
printf("%d Nota(s) de R$ 2.00\n", value[0] % 100 % 50 % 20 % 10 % 5 / 2);

printf("MOEDAS: \n");
printf("%d Moeda(s) de R$ 1.00\n", value[0] % 100 % 50 % 20 % 10 % 5 % 2);
printf("%d Moeda(s) de R$ 0.50\n", value[1] % 100 / 50);
printf("%d Moeda(s) de R$ 0.25\n", value[1] % 100 % 50 / 25);

return 0;
}

关于c++ - 如何在使用模数将十进制值转换为货币时使程序编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791438/

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