哪位大侠帮忙看下为什么我的程序中数量保存不住,当有两个一样的名字时,数量为什么不累加
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#include <math.h>
#define MAX 1000 //最大值定义为100
struct DATE
{
int year;
int month;
int day;
};
struct member
{
char name[40];
int num;
int price;
struct DATE intime;
}in1[MAX],in2[MAX],*p,*q;
struct sum
{
char name[40];
int numb;
int price;
}zongji[MAX],*m;
void Initin() //结构体初始化
{
for(int i=0;i<MAX;i++)
{
in1[i].num=0;
in1[i].price=0;
in2[i].num=0;
in2[i].price=0;
}
}
void tianjia1(struct member *p)
{
printf("请输入要添加物品的名称:");
scanf("%s", p->name);
printf("\n");
printf("\n");
printf("请输入要添加物品的价格:");
scanf("%d",&p->price);
printf("\n");
printf("\n");
printf("请输入要添加物品的数量: ");
scanf("%d",&p->num);
printf("\n");
printf("\n");
printf("请输入添加物品的时间(xx-xx-xx): ");
scanf("%d-%d-%d",&p->intime.year,&p->intime.month,&p->intime.day);
}
void tianjia2(struct member *q)
{
printf("请输入要添加物品的名称:");
scanf("%s", q->name);
printf("\n");
printf("\n");
printf("请输入要添加物品的价格:");
scanf("%d",&q->price);
printf("\n");
printf("\n");
printf("请输入要添加物品的数量: ");
scanf("%d",&q->num);
printf("\n");
printf("\n");
printf("请输入添加物品的时间(xx-xx-xx): ");
scanf("%d-%d-%d",&q->intime.year,&q->intime.month,&q->intime.day);
}
void Menu() //菜单
{
printf("┏—————————————————M E N U————————————————┓\n");
printf("│ │\n");
printf("│ 1. 衣方面花费 │\n");
printf("│ 2. 食方面花费 │\n");
printf("│ 3. 行方面花费 │\n");
printf("│ 4. 通讯类花费 │\n");
printf("│ 5. 其他类花费 │\n");
printf("│ 6. 衣方面合计 │\n");
printf("│ 7. 食方面合计 │\n");
printf("│ 8. 行方面合计 │\n");
printf("│ 9. 通讯方面合计 │\n");
printf("│ 10. 其他类合计 │\n");
printf("┗—————————————请 选 择 你 需 要 的 操 作————————————┛\n");
}
void cMenu()
{
printf("┏—————————————————————————————————┓\n");
printf("│ │\n");
printf("│ 1.小胖子 2小瘦子 │\n");
printf("│ │\n");
printf("┗——————————请 选 择 你 需 要 的 操 作——————————┛\n");
}
void dMenu()
{
printf("┏—————————————————————————————————┓\n");
printf("│ │\n");
printf("│ 1.水 2电 │\n");
printf("│ │\n");
printf("┗——————————请 选 择 你 需 要 的 操 作——————————┛\n");
}
void xianshi1(struct member *p)
{
printf("┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳\n");
printf("┃ 名字 ┃ 数量 ┃ 价格 ┃\n");
printf("┣━━━━━━━╋━━━━━━━╋━━━━━━━━┫\n");
printf("┃%14s┃%14d┃%16d┃\n",p->name,p->num,p->price);
printf("┗━━━━━━━┻━━━━━━━┻━━━━━━━━┛\n");
printf("%d-%d-%d",p->intime.year,p->intime.month,p->intime.day);
printf("\n");
printf("\n");
p++;
}
void xianshi2(struct member *q)
{
printf("┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳\n");
printf("┃ 名字 ┃ 数量 ┃ 价格 ┃\n");
printf("┣━━━━━━━╋━━━━━━━╋━━━━━━━━┫\n");
printf("┃%14s┃%14d┃%16d┃\n",q->name,q->num,q->price);
printf("┗━━━━━━━┻━━━━━━━┻━━━━━━━━┛\n");
printf("%d-%d-%d",q->intime.year,q->intime.month,q->intime.day);
printf("\n");
printf("\n");
q++;
}
void main()
{
Initin();
int totle=0;
p=in1;
q=in2;
printf("-----------------------欢 迎 进 入 超 级 管 家 系 统!---------------------------\n\n");
int choice=5;
int cchoice;
while(choice!=0)
{
Menu();//显示菜单
scanf("%d",&choice);
switch(choice)
{
case 1:
cMenu();
scanf("%d",&cchoice);
switch(cchoice)
{
case 1:
tianjia1(p);
xianshi1(p);
break;
case 2:
tianjia2(q);
xianshi2(q);
break;
}
break;
case 6:
cMenu();
scanf("%d",&cchoice);
switch(cchoice)
{
case 1:
int j;
m=zongji;
printf("请输入要总计的产品名称:");
scanf("%s",m->name);
for(j=0;j<=MAX;j++)
{
if(strcmp(m->name,p->name)==0)//如果名一样
{
m->numb=m->numb+p->num;
p--;
m++;
}
}
printf("%d",m->numb);
}
}
}
}