当计算所有价格C++时,总金额被搞砸了
total amount is messed up when calculated all the price C++
所以我尝试使用 C++ 制作一些东西,我制作的所有代码都能顺利运行而不会出错,但问题是,"付款"不正确,它只是从"付款"中学到很多,我尝试将其从"int"更改为 long 也不起作用双精度和浮动。 这是代码和输出。
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
main()
{
char brand[6][20]={"DA","da","TO","to","HO","ho"},car[6],*info[6];
int j,a,amount[6],tax[6],rent[6],total[6],final[6];
long final_total[20];
int price[15]={200000,300000,400000,500000,600000,250000,450000,550000,350000,375000,425000,555000};
cout<<"ttt***rental mobil sederhana***"<<endl;
cout<<"ttt**Jalan tebet raya no.15**"<<endl;
cout<<"ttt============================"<<endl;
cout<<" "<<endl;
cout<<"tinformasi merk dan mobil yang tersedia"<<endl;
cout<<"DAIHATSU [DA] : 1. Ayla 3. Luxio "<<endl;
cout<<" 2. Sigra 4. Terios "<<endl;
cout<<"-------------------------------------"<<endl;
cout<<"TOYOTA [TO] : 1. Innova 3. Avanza "<<endl;
cout<<" 2. Yaris 4. Veloz "<<endl;
cout<<"-------------------------------------"<<endl;
cout<<"HONDA [HO] : 1. Mobilio 3. Civic "<<endl;
cout<<" : 2. Jazz 4. Brio "<<endl;
cout<<"amount :"; cin>>j;
amount[j]=0;
if(j<=0)
{
cout<<"banyak mobil tidak bisa kosong";
}
else
{
for(a=1;a<=j; a++)
{
cout<<"car number -"<<a<<endl;
cout<<"enter the car brand :"; cin>>brand[a];
cout<<"enter the car code :" ; cin>>car[a];
cout<<"how long :"; cin>>rent[a];
if(brand[a]=="DA" || brand[a]=="da")
{
if(car[a]==1)
{
info[a]= "Ayla";
price[a]=200000;
}
else if(car[a]==2)
{
info[a]= "Sigra";
price[a]=300000;
}
else if(car[a]==3)
{
info[a]= "Luxio";
price[a]=400000;
}
else if(car[a]==4)
{
info[a]= "Terios";
price[a]=500000;
}
}
else if(brand[a]=="TO" || brand[a]=="to")
{
if(car[a]==1)
{
info[a]= "Innova";
price[a]=600000;
}
else if(car[a]==2)
{
info[a]= "Yaris";
price[a]=250000;
}
else if(car[a]==3)
{
info[a]= "Avanza";
price[a]=450000;
}
else if(car[a]==4)
{
info[a]= "Veloz";
price[a]=550000;
}
}
else if(brand[a]=="HO" || brand[a]=="ho")
{
if(car[a]==1)
{
info[a]= "Mobilio";
price[a]=350000;
}
else if(car[a]==2)
{
info[a]= "Jazz";
price[a]=375000;
}
else if(car[a]==3)
{
info[a]= "Civic";
price[a]=425000;
}
else if(car[a]==4)
{
info[a]= "Brio";
price[a]=555000;
}
}
total[a]=rent[a]*price[a];
final_total[j]=final_total[j]+total[a]*price[a];
if(final_total[j]<=0)
{
tax[j]=0;
final[j]=0;
}
else
{
tax[j]=final_total[j]*0.25;
final[j]=final_total[j]+tax[j];
}
}
}
cout<<"tttRental mobil sederhana"<<endl;
cout<<"========================================="<<endl;
cout<<"no.| car | car | price | Total"<<endl;
cout<<" | brand| name | | price "<<endl;
cout<<"========================================="<<endl;
for(a=1;a<=j; a++)
{
cout<<" "<<a<<"|"<<brand[a]<<" |";
cout<<" |"<<price[a]<<" | Rp."<<total[a]<<endl;
}
cout<<"-------------------------------------------------"<<endl;
cout<<"payment :Rp. "<<final_total[j]<<endl;
cout<<"tax 25% :Rp. "<<tax[j]<<endl;
cout<<"total payment :Rp. "<<final[j]<<endl;
getch();
}
这是输出
混乱的数字最终是"付款"。 我的税款和最终付款也会受到混乱数字的影响。谢谢!对不起,我的英语不好。
这里的问题很少。
- 数组从 0 开始:而不是从 1 开始。 价格已初始化为 20000、30000、40000 等。 价格[1]是30000:不是20000。 不知道为什么要初始化价格,因为您要覆盖下面 if 语句中的所有价格。
- final_total在使用之前需要初始化:因此数字混乱。这需要在你第一次喝酒之前完成。
- 总计[a] = 租金[a] * 价格[a] - 这是有道理的,但您从 1 开始。 如果打印出总计的所有元素,则第一个值为空,第二个元素具有计算的总计。 这是因为数组从 0 开始。
- final_total[j] = final_total[j] + 总计[a] * 价格[a] - 为什么要再次乘以价格?
了解如何使用调试器:它将为您节省大量时间。
塞莫加·贝哈西尔
相关文章:
- 对于使用高级服务的分钟数和应付金额,我不断得到相同的数字
- 计算所选行的总和
- 用给定面值的最小硬币数量计价金额.贪婪的问题
- 当计算所有价格C++时,总金额被搞砸了
- 如何让我的输出显示输入金额的星号
- 允许用户输入带或不带美元符号的金额
- 如何将钱分成不同的金额
- 引导零曲线只有一个除法日期和一个除法金额
- 如何计算相同的累积金额
- DirectX 11:绘制调用金额
- 根据给定标准的最大金额
- 初学者C++:返回单个值。问题:我的金额四舍五入,我不希望它四舍五入
- 找到最多2笔交易可以赚的最高金额(在列表中找到两个最大的非重叠增长)
- 如何正确使用 setprecision() 将".00"添加到金额的末尾?
- 读入美元金额(带美元符号)C++
- 计算不同金额的相同项目
- 将美元金额转换为字符串
- void函数来计算所指向的节点的权重
- 将货币金额四舍五入到最接近的镍、四分之一、1 美元、5 美元等面额的最佳方法是什么?
- C++ - 数组类型"无符号__int64 [金额*]"不可分配