printf不输出数据方法
查询功能无限循环
无法输出
在查询这个功能里没办法输出数据
实在是找不到问题在哪里,没有一点头绪{:9_225:}
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
#define len 15
struct Goods
{
int id;//产品编号
char kudan1[len+1];//入库单号
char kudan2[len+1];//出库单号
char name;//名称
int num;//数量
float cost;//成本
float price;//售价
float profit;//利润
}goods[50],rk,ck,cx;
void input();
void output();
void searchr();
void menu();
int main(){
int command = 0; //command用于存储管理员命令对应的菜单数字
int a = 1; //用于判断是否退出系统
while(a){ //利用while循环实现对管理系统进行多种操作
printf("1.入库2.出库3.查询\n");
printf("请输入操作对应的数字!\n\n");
scanf("%d", &command);
switch(command){
case(1): //进库
input();
break;
case(2): //出库
output();
break;
case(3): //查询库存
searchr();
break;
default:
printf("请输入正确的数字!\n\n"); //提示管理员重新输入正确的菜单数字
break;
}
}
printf("您已退出可口可乐广东分公司仓库管理系统!"); //提示管理员成功退出系统
return 0;
}
int S=0;//产品种类
void input()//入库
{
int a,i=0,j=0;
printf("请输入入库产品种类:\n");
scanf("%d",&a);
for(j=0;j<a;j++)
{ printf("请输入第%d个产品信息\n",(j+1));
printf("产品名称:");
scanf("%s",&goods[i].name);
printf("产品编号:");
scanf("%d",&goods[i].id);
printf("例:2022年1月填为202201\n");
printf("入库单号:\n");
scanf("%s",&goods[i].kudan1);
printf("数量:");
scanf("%d",&goods[i].num);
printf("请再输入一次\n");
scanf("%d",&rk.num);
int flag = 0;
for(i = 0; i <S; i++)
{
if(rk.id==goods[i].id)
{flag = 1;
goods[i].num =rk.num+goods[i].num;
break;
}
}
if (flag == 0)
{
S++;
}
}
}
void output()//出库
{
int b,j=0,i=0;
printf("请输入本次出库产品种类数:\n");
scanf("%d", &b);
for(j=0;j<b;j++)
{
printf("请输入出库单号\n");
scanf("%s",&goods[i].kudan2);
printf("\n请输入第%d个产品编号:\n",(j+1));
scanf("%d",&ck.id);
printf("请输入出库数量:\n");
scanf("%d",&ck.num);
int flag=0;
for(i=0;i<S;i++)
{
int t=0;
if(ck.id==goods[i].id)
{
flag=1;
if(goods[i].num==ck.num)
{
printf("库存清零\n");
S--;
}
else if((goods[i].num-ck.num)<0)
printf("库存不足,出库失败\n");
else
{
goods[i].num=(goods[i].num-ck.num);
printf("出库成功\n");
}
break;
}
}
}
}
void searchr()
{
int i,s,flag;
char c[90];
printf("1.查询入库单\n");
printf("2.查询出库单\n");
printf("3.退出菜单\n");
while(1){
printf("请选择编号:");
scanf("%d",&s);
flag=0;
switch(s){
case 1:
printf("请输入要查询入库单号:\n");
scanf("%s",&c);
for(i=0;i<S;i++)
if(strcmp(goods[i].kudan1,c)==0) {
flag=1;
printf("入库单号 编号 名称 数量 成本\n");
printf("%6s%6d%6s%6d%6.1f\n",goods[i].kudan1,goods[i].id ,goods[i].name ,goods[i].num ,goods[i].cost);}
if(flag==0)
printf("该单号不存在!\n");
break;
case 2:
printf("请输入要查询出库单号:\n");
scanf("%s",&c);
for(i=0;i<S;i++)
if(strcmp(goods[i].kudan2,c)==0){
flag=1;
printf("出库单号 编号 名称 数量 利润\n");
goods[i].profit=goods[i].price-goods[i].cost;
printf("%6s%6d%6s%6d%6.1f\n",goods[i].kudan2,goods[i].id ,goods[i].name ,goods[i].num ,goods[i].profit);}
if(flag==0)
printf("该单号不存在!\n");
break;
case 3:
return;
default:
printf("999");
}
}
}