编程论坛
注册
登录
编程论坛
→
C语言论坛
想问怎么用数组做一个商店,输入为负数的话就退出程序
lightarmor
发布于 2021-11-08 12:32, 1077 次点击
比如说:
1)有货
2)有货
3)有货
输入要买几号:3
1)有货
2)有货
3)售出
输入要买几号:-1
谢谢光临
2 回复
#2
diycai
2021-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_TF
2021-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