我有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");
}
答案 0 :(得分:2)
您可以在进行减法之前进行检查:
if (reg[i].lagersaldo - change < 0) {
printf("Error! Can't be under 0 !!");
return;
}
reg[i].lagersaldo -= change;