#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct shouru//收入
{
char num[10];
char name[20];
char kind[20];
char date[20];
int jinge;
char beizhu[100];
int total=0;
}shouru;
shouru shouruchucun[100];
typedef struct zhichu//支出
{
char num[20];
char name[20];
char kind[20];
char date[20];
int jinge;
char beizhu[100];
}zhichu;
zhichu zhichuchucun[100];
int g = 0;//收入个数
int p = 0;//支出个数
int j = 0;//收入金额
int y = 0;//支出金额
void shuoru1() //收入输入
{
int i = 1;
do
{
shouru shouru;
printf("\n请输入序号、姓名、收入类别、收入日期(如6)、收入金额、收入备注\n");
scanf("%s %s %s %s %d %s", shouruchucun[i].num[10], shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date[20], shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
shouru.total=shouru.total+shouru.jinge;
printf("kkkk");
g++;
printf("若要继续输入按1 or 按0\n");
scanf("%d", &i);
} while (i == 1);
}
void zhichu1() //支出输入
{
int i = 1;
do
{
printf("\n请输入收入类别、收入金额、收入备注\n");
scanf("%s %s %s %s %d %s", zhichuchucun[i].num, zhichuchucun[i].name, zhichuchucun[i].kind, zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu);
y = y + zhichuchucun[i].jinge;
p++;
printf("若要继续输入按1 or 按0\n");
scanf("%d", &i);
} while (i == 1);
}
void yuechaxun()//余额查询
{
int sum = 0;
sum = j - y;
printf("当前账户余额为: %d\n",sum);
}
void szfltj()//支付分类统计
{
int i;
double srsum = 0, zcsum = 0;
printf("执行收支分类统计功能!\n");
printf("收入统计");
printf("输入几条收入");
printf("请输入序号、名字、种类、日期、金额、备注");
for (i = 0; i < j; i++)
{
if (strcmp(shouruchucun[i].kind,"wx")==0 )
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
srsum = srsum + shouruchucun[i].jinge;
}
else if (0 == strcmp(shouruchucun[i].kind, "zfb"))
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
srsum = srsum + shouruchucun[i].jinge;
}
else
{
for (i = 0; i < j; i++)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name, shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
srsum = srsum + shouruchucun[i].jinge;
}
}
}
int k;
printf("支出统计");
printf("输入几条支出");
scanf("%d", &k);
for (i = 0; i < k; i++)
{
if ( strcmp(zhichuchucun[i].kind, "wx") == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
}
zcsum = zcsum + zhichuchucun[i].jinge;
if (strcmp(zhichuchucun[i].kind, "zfb") ==0)
{
for (i = 0; i < k; i++)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
}
zcsum = zcsum + zhichuchucun[i].jinge;
}
else
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
zcsum = zcsum + zhichuchucun[i].jinge;
}
}
}
void richang()
{
char i=0, k, t[50];
printf("输入当前月份:\n");
scanf("%s", &t);
printf("收入报表\n");
printf("账户号,姓名,数目,日期,类别,备注\n");
if (strcmp(zhichuchucun[i].date, t) == 0)
{
for (i = 0; i < g; i++)
{
printf("%d%s%d%s%s%s\n", &shouruchucun[i].num, &shouruchucun[i].name, &shouruchucun[i].kind, &shouruchucun[i].date, &shouruchucun[i].jinge, &shouruchucun[i].beizhu);
}
}
printf("支出报表\n");
printf("账户号,姓名,数目,日期,类别,备注\n");
if (strcmp(zhichuchucun[i].date, t) == 0)
{
for (i = 0; i < p; i++)
{
printf("%d%s%d%s%s%s\n", &zhichuchucun[i].num, &zhichuchucun[i].name, &zhichuchucun[i].kind, &zhichuchucun[i].date, &zhichuchucun[i].jinge, &zhichuchucun[i].beizhu);
}
}
printf("余额报表\n");
k = j - y;
printf("当前余额为&d", k);
}
void chaxun() //查询
{
char j[50];
int n = 0;
printf("******************\n");
printf("查询功能\n");
printf("1. 按序号查询\n");
printf("2. 按日期检索\n");
printf("3. 按类别检索\n");
printf("******************\n");
scanf("%d", &n);
switch (n)
{
case 1:
printf("输入序号: ");
scanf("%s", &j);
for (int i = 0; i < g; i++)
{
if (strcmp(shouruchucun[i].num, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
}
if (strcmp(zhichuchucun[i].num, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
}
}
break;
case 2:
printf("日期查询: ");
scanf("%s", j);
for (int i = 0; i < g; i++)
{
if (strcmp(shouruchucun[i].date, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
}
if (strcmp(zhichuchucun[i].num, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
}
}
break;
case 3:
printf("类别查询: \n");
scanf("%s", j);
for (int i = 0; i < g; i++)
{
if (strcmp(shouruchucun[i].kind, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", shouruchucun[i].num, shouruchucun[i].name[20], shouruchucun[i].kind[20], shouruchucun[i].date, shouruchucun[i].jinge, shouruchucun[i].beizhu[100]);
}
if (strcmp(zhichuchucun[i].num, j) == 0)
{
printf("序号:%s 名字:%s 种类:%s 日期:%s 金额:%d 备注:%s\n", zhichuchucun[i].num, zhichuchucun[i].name[20], zhichuchucun[i].kind[20], zhichuchucun[i].date, zhichuchucun[i].jinge, zhichuchucun[i].beizhu[100]);
}
}
break;
default:
printf("输入有误,请重新选择!\n");
}
}
int main()
{
int n = 0;
while (n != 7)
{
printf("******************\n");
printf("\t1.信息输入\n");
printf("\t2.信息检索\n");
printf("\t3.信息修改\n");
printf("\t4.信息删除\n");
printf("\t5.信息统计\n");
printf("\t6.信息输出\n");
printf("\t0.退出系统\n");
printf("******************\n");
scanf("%d", &n);
if (n == 0)
break;
switch (n)
{
case 1:
shuoru1();
break;
case 2:
zhichu1();
break;
case 3:
yuechaxun();
break;
case 4:
szfltj();
break;
case 5:
richang();
break;
case 6:
chaxun:
break;
default:
printf("输入有误,请重新选择!\n");
}
}
return 0;
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
子程序无法运行成功,在黑窗口总是输入完就结束了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 快乐鹦鹉 2023-06-16 11:49关注
运行界面截图看看
42行错误,将所有[20]这样的中括号带数字的都删掉。只需要变量名,不要带数组大小,带了就是数组的第20个元素的意思啦。
后面的printf语句也都是这样的错误
但57行又是写对了,参考一下吧。得统一啊
printf语句的num是对的,后面都错了解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 这Mac系统提示虚拟内存不足,怎么解决
- ¥15 Rs232电路无法收发数据,求帮助
- ¥15 百度cookie扫码登录器
- ¥15 微机原理汇编语言debug调试实验
- ¥23 matlab可以把相图转换为庞加莱映射吗
- ¥15 Arduino电机和openmv连接异常
- ¥15 Arcgis河网分级报错
- ¥200 java+appium2.1+idea
- ¥20 请帮我做一个EXE的去重TXT文本
- ¥15 工价表引用工艺路线,应如何制作py和xml文件