回 帖 发 新 帖 刷新版面

主题:求零问题,求教

#include<iostream>
using namespace std;
int main()
{
    double paid,income,dollar[]={100,50,10,5,2,1,0.5,0.2,0.1};
    int i,change;
    

    cout<<"客户购物金额:";
    cin>>paid;
    cout<<"实收:";
    cin>>income;

    paid=income-paid;
    cout<<"应找客户金额为:"<<paid<<"元\n";
    cout<<'\n';

    for(i=0;i<9;i++)
    {
        change=paid/dollar[i];
        cout<<dollar[i]<<"元="<<change<<"张\n";
        cout<<'\n';

           if(paid>=dollar[i])
        paid=paid-change*dollar[i];
           
    }
    return 0;
}

请高手帮我看看这段代码,在计算的时候代码计算错误,我想了好久也想不处来,请教高手,谢谢啦!

回复列表 (共1个回复)

沙发


你这个判断有问题     if(paid>=dollar[i])
        paid=paid-change*dollar[i];
因为你这个paid有可能出现负值。当paid为正时,计算是不会错;当paid为负时,那么paid永远小于dollar[i],后面的‘paid=paid-change*dollar[i]’这个语句就不会执行
’导致计算错误。自己设置个断点就知道了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册