注册 登录
编程论坛 C语言论坛

想问怎么用数组做一个商店,输入为负数的话就退出程序

lightarmor 发布于 2021-11-08 12:32, 1077 次点击
比如说:
1)有货
2)有货
3)有货
输入要买几号:3
1)有货
2)有货
3)售出
输入要买几号:-1
谢谢光临
2 回复
#2
diycai2021-11-10 15:58
程序代码:
#include <stdio.h>
void main()
{
    int array[] = {1, 3, 5, 6, 8};
    int i, num;

    while (1)
    {
        for (i=0; i<sizeof(array)/sizeof(int); i++)
        {
            printf("%d)%s    库存%d\n", i+1, array[i]?"有货":"售罄", array[i]);
        }
        printf("输入要买几号:");
        scanf("%d", &num);
        if (num == -1)
        {
            printf("谢谢光临\n");
            break;
        }
        if (num<1 || num >sizeof(array)/sizeof(int))
        {
            printf("编号错误\n");
            continue;
        }
        if (array[num-1] == 0)
        {
            printf("库存不足\n");
            continue;
        }
        array[num-1] -= 1;
    }
}
#3
Hhu_TF2021-11-10 22:31
#include <stdio.h>

int main() {
    int a[] = {1, 2, 5, 9, 9};//大括号中输入对应商品的数量,可根据具体情况进行修改;
    int i, n;                //n为要买的号;
    while (1) {
        for (i = 0; i < sizeof(a) / sizeof(int); i++) {
            printf("%d)%s    库存%d\n", i + 1, a[i] ? "有货" : "售出", a[i]);
        }
        printf("\n输入要买几号:");
        scanf("%d", &n);
        if (n < 0) {
            printf("谢谢光临~~\n\n");//对于负数输出“欢迎光临”;
            break;
        }
        if (n < 1 || n > sizeof(a) / sizeof(int)) {
            printf("编码错误!\n\n");//对不符合要求的数进行报警,防止出现bug;
            continue;
        }
        if (a[n - 1] == 0) {
            printf("已售空\n\n");//对已售空的商品进行提醒;
            continue;
        }
        a[n - 1] -= 1;//库存计数;
    }
}
1