c语言入门:[21]总结练习之存包程序2
操作方法
- 01
上节我们只写了一个输出箱子状态的函数,接下来我们写一个存包的函数 void fin() { int n; printf("您要存几号箱?"); scanf("%d",&n); printf("物品已存于%d号箱\n",n); box[n-1]=1; } 再写一个取包的函数 void fout() { int n; printf("您要取几号箱?"); scanf("%d",&n); printf("%d号箱已经打开请取走物品\n",n); box[n-1]=0; } 这两个函数都很简单没有参数,代码里也没加逻辑判断,如果取几号箱就把箱子数组对应下标位置的元素置为0代表已经空了,如果存几号箱就把箱子数组对应下标位置的元素置为1代表已经存了东西了,其实应该加一些判断,比如在存包的时候需要判断用户输入的箱子号里是否已经存有东西了,如果已经存了东西就不能再存了,我想这些只是加一些if语句的事你肯定会,加上这些判断后能够让我们的程序更符合逻辑。 接下来就是在main里调用了 main() { int n; printbox(); printf("请选择:1存包 2取包\n"); scanf("%d",&n); if(n==1) { fin(); } else if(n==2) { fout(); } else { printf("请正确输入\n"); } } 这样做完后运行程序你会发现只执行一次程序就结束了,为了能让用户不停地取包存包,我们需要让main里的代码重复运行,我们学过的循环就派上用场了下面贴出加上循环后的整个程序 int box[10]={0,0,0,0,0,0,0,0,0,0}; void printbox() { int i; printf("1 2 3 4 5 6 7 8 9 10\n"); for(i=0;i<10;i++) { box[i]==0?printf("□ "):printf("■ "); } printf("\n"); } void fout() { int n; printf("您要取几号箱?"); scanf("%d",&n); printf("%d号箱已经打开请取走物品\n",n); box[n-1]=0; } void fin() { int n; printf("您要存几号箱?"); scanf("%d",&n); printf("物品已存于%d号箱\n",n); box[n-1]=1; } main() { int n; while(1) { printbox(); printf("请选择:1存包 2取包 3退出程序\n"); scanf("%d",&n); if(n==1) { fin(); } else if(n==2) { fout(); } else if(n==3) { break; } else { printf("请正确输入\n"); } } } 运行效果如下图: 这个简单的小程序你会了吗? 那我们看看现在超市的自动存包程序是怎么样的。 存包:在箱柜未满的情况下,首先我们按下存包按钮,一个空的箱子打开,取走出条码,然后存东西。 取包:扫描条码,对应的箱子打开,取走东西。 下节把我们的存包程序改成这样的,你可以先自己试验一下,如果你试验成功了可以把代码贴到评论里呀,光我自己写实在太寂寞了。