如果函数是真的,如何保持值?

时间:2017-10-19 19:56:01

标签: c

我有lagersaldot,如果用户选择1,则会添加一个数字,如果选择2,则会从中减去一个数字。但如果它选择2,并且数字为<0,我如何保留旧值?让我们说lagersaldot是10并且选择减去15,低于0它应该保持其值10。

    void updateLagersaldo(struct varor reg[], int nrOfGoods){
        int i, varunummer, change;
        printf("Enter Varunummer: ");// identify the item and change lagersaldo
        scanf("%d", &varunummer);
        i= ifVarunummerExist(varunummer, reg, nrOfGoods);
        printf("\nVarunummer \t Namn \t\t\t Lagersaldo\n");
        printf(" %d \t\t %s \t\t\t %d\n",reg[i].varunummer,reg[i].namn,reg[i].lagersaldo);
        if(i >= 0){
            char choice;
            printf("\n (1) Sum lagersaldot \n (2) Subtract lagersaldot");
            scanf(" %c%*c", &choice);
            if(choice=='1'){
                printf("Sum lagersaldot with: ");
                scanf("%d", &change);
                reg[i].lagersaldo+=change;
            }

//HERE IF CHOICE IS 2 IF LAGERSALDO<0
            if(choice=='2'){
                printf("Subtract lagersaldot with: ");
                scanf("%d", &change);
                reg[i].lagersaldo-=change;
                if(reg[i].lagersaldo<0){
                    printf("Error! Can't be under 0 !!");
                    return;
                }
            }

        }else printf("Varunummer not exist!\n");
    }

1 个答案:

答案 0 :(得分:2)

您可以在进行减法之前进行检查:

if (reg[i].lagersaldo - change < 0) {
    printf("Error! Can't be under 0 !!");
    return;
}
reg[i].lagersaldo -= change;