某服装店经营套服,也单件出售,若买的不少于50套,每套80元,不足50套,每套90元,若只买上衣,每件60元,只买裤子每条45元,读入所买上衣和 裤子件数(不小于0的整数),计算总付款。

img


请问上图的代码有哪些错误? 如果以标题中50套为界,且运用条件运算式,还有什么方法?

#include "stdio.h"
int main(void)
{
    int imoney = 0;
    int iWaist = 0;
    int itrousers = 0;
    printf("请分别输入需要买的上衣和裤子的数目:");
    scanf("%d%d" ,&iWaist ,&itrousers); 
    if ( iWaist >= itrousers )
    {
        if ( itrousers >= 50 )
        {
            imoney = itrousers * 80 + ( iWaist - itrousers )*60;
        }
        else
        {
            imoney = itrousers * 90 + ( iWaist - itrousers )*60;
        }
    }
    else
    {
        if ( iWaist >= 50 )
        {
            imoney = iWaist * 80 + ( itrousers - iWaist )*45;
        }
        else
        {
            imoney = iWaist * 90 + ( itrousers - iWaist )*45;
        }
    }
    printf("monye = %d\n", imoney);
    return 0;
}

这么写,供参考:

#include <stdio.h>
int main()
{
    int   a, b, flg = -1;
    float sum = 0;
    scanf("%d%d", &a, &b);
    if (a > b) {
        a -= b;
        flg = 0;
    }
    else if (a < b) {
        b -= a;
        flg = 1;
    }
    if (flg == -1) {  // a == b
        if (a >= 50) 
            sum = a * 80;
        else
            sum = a * 90;
    }
    else if (flg == 0) {  //a > b
        if (b >= 50)
            sum = b * 80 + a * 60;
        else
            sum = b * 90 + a * 60;
    }
    else if (flg == 1) { //a < b
        if (a >= 50)
            sum = a * 80 + b * 45;
        else
            sum = a * 90 + b * 45;
    }
    printf("%.2f", sum);
    return 0;
}