计算服装店衣服在程序中的漏洞

这是题

img


这是我输的代码

img


不知道哪错了,输入两个100以内的数结果正确,但是输入大于100的数,结果不对

img


这是我输的100 101的结果,应该是8848的

你这两个判断条件都会走呀,上边走了,下边还会判断,如果满足继续执行计算的,在你的基础上改了下,可以看看

img

img

#include <stdio.h>
int main()
{
int c,t,m,s;
scanf( "%d %d" ,&c,&t);
if(c>=t) s=t;
else   s=c;
 if(s>=100&&c=>t)
m=88*t+(c-t)*66;
else if(s>=100&&c<t) 
m=88*c+(t-c)*48;
 if(s<100&&c=>t)
m=98*t+(c-t)*66;
else if(s<100&&c<t)
m=98*c+(t-c)*48;
printf("应付款数为:%d\n",m);
return 0;
} 

int main()
{
    int c, t, m = 0, tt;
    scanf("%d%d", &c, &t);
    tt = c - t;
    if (tt == 0) //刚好成套
    {
        tt = c;
        c = t = 0;
    }
    else if (tt < 0) //上衣少
    {
        tt = c;     //以上衣数为成套数
        c = 0;      //没有单独的上衣
        t = t - tt; //成套后多余裤子
    }
    else if (tt > 0) //同上
    {
        tt = t;
        c = c - tt;
        t = 0;
    }

    if (tt > 100)
        m = tt * 88;
    else
        m = tt * 98;

    m += t * 48 + c * 66;
    printf("%d\n", m);

    return 0;
}