C语言 为if语句选择条件

hs1ihplo  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(120)

我想对库存余额进行修改。通过简单的逻辑,如果我输入一个大于0的数字,它应该加,如果数字小于0减。到目前为止,它工作得很好。
现在到发货。如果用户键入的数字小于库存余额本身,程序应将库存余额的值设置为0。
例如,如果库存余额为17,我们键入数字-18,它应该是0而不是-1。
这是目前为止我的代码。

printf("Increase or decrease by: ");
scanf("%d", &n);

if(n >= 0){
    a[i].inventory = a[i].inventory+n;
}else{
    a[i].inventory = a[i].inventory+n;   // +- = -
    if(n < a[i].inventory){
        a[i].inventory = a[i].inventory- a[i].inventory;
    }

我尝试添加最后一个if语句,但考虑到if条件的“错误”逻辑,它不起作用。错误逻辑:如果inventory是17,我想减去2,它总是小于a[i].inventory,它将跳过else并运行最后一个if语句。

2skhul33

2skhul331#

你把一件简单的任务搞得太复杂了。

a[i].inventory += n; /* n can be negative too. */

if (a[i].inventory < 0)
    a[i].inventory = 0;

相关问题