C语言编程问题.请高手进(附源码)!!!!!!!!!HELP

#include "stdio.h"
#include "stdlib.h"
void main()
{void fcxxwh(void);
void fcxxcx(void);
void dc(void);
void zz(void);
void sr(void);
int a;
printf("\t饭店信息维护系统\n");
printf("1.饭菜信息维护\t");
printf("2.饭菜信息查询\n");
printf("3.点菜\t\t");
printf("4.结帐\n");
printf("请输入所需要的功能:");
scanf("%d",&a);
switch(a)
{
case 1:fcxxwh();break;
case 2:;break;
case 3:;break;
case 4:;break;
default:printf("输入错误,请重新打开程序输入!");
}
}
void fcxxwh(void)
{int a,b,c;
printf("1.录入\t");
printf("2.修改\t");
printf("3.删除\t");
printf("\n请输入所需要的功能:");
scanf("%d",&a);
switch(a)
{case 1:
printf("请输入录入次数:");
scanf("%d",b);
for(c=0;c!=b;c++)
sr();break;
case 2:;break;
case 3:;break;
default:printf("输入错误,请重新打开程序输入!");
}
}
void sr(void)
{
int b=0,d=0,f=0;
float e=0.0;
char A[20],c[20];
FILE *g;
g=fopen("fdsj.dat","w");
printf("请输入菜的类别:(数字)\n");
printf("1.主食\t2.热菜\t3.凉菜\t4.汤\t");
scanf("%d",&b);
printf("请输入菜名,按回车键结束\n");
scanf("%s",A);
printf("\n请输入拼音码(菜名首字母)&编码&价格{回车确定}\n");
scanf("%s%d%f",c,&d,&e);
printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f\n是否正确?(正确请输入1,否则按任意键退出):",b,d,c,A,e);
scanf("%d",f);
if (f==1)
fprintf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f",b,d,c,A,e);
else
sr();
}
编译出来,到
scanf("%d",f);
if (f==1)
fprintf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f",b,d,c,A,e);
else
sr();
出现错误,编译成功,但运行有问题

//三个地方, 不过最后那个函数递归的时候最好先关闭文件。
#include "stdio.h"
#include "stdlib.h"
void fcxxwh(void);
void fcxxcx(void);
void dc(void);
void zz(void);
void sr(void);
void main()
{
int a;
printf("\t饭店信息维护系统\n");
printf("1.饭菜信息维护\t");
printf("2.饭菜信息查询\n");
printf("3.点菜\t\t");
printf("4.结帐\n");
printf("请输入所需要的功能:");
scanf("%d",&a);
switch(a)
{
case 1:fcxxwh();break;
case 2:;break;
case 3:;break;
case 4:;break;
default:printf("输入错误,请重新打开程序输入!");
}
}
void fcxxwh(void)
{int a,b,c;
printf("1.录入\t");
printf("2.修改\t");
printf("3.删除\t");
printf("\n请输入所需要的功能:");
scanf("%d",&a);
switch(a)
{case 1:
printf("请输入录入次数:");
scanf("%d",&b);//---------------&b
for(c=0;c!=b;c++)
sr();break;
case 2:;break;
case 3:;break;
default:printf("输入错误,请重新打开程序输入!");
}
}
void sr(void)
{
int b=0,d=0,f=0;
float e=0.0;
char A[20],c[20];
FILE *g;
g=fopen("fdsj.dat","a+");//----------a方式好,是追加
printf("请输入菜的类别:(数字)\n");
printf("1.主食\t2.热菜\t3.凉菜\t4.汤\t");
scanf("%d",&b);
printf("请输入菜名,按回车键结束\n");
scanf("%s",A);
printf("\n请输入拼音码(菜名首字母)&编码&价格{回车确定}\n");
scanf("%s%d%f",c,&d,&e);
printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f\n是否正确?(正确请输入1,否则按任意键退出):",b,d,c,A,e);
scanf("%d",&f); //------------&f
if (f==1)
fprintf(g,"此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f",b,d,c,A,e);//------------fprintf
else
sr();
}追问

谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-29
因为你的源程序中:fprintf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f",b,d,c,A,e);这句话的fprintf前面多了个f,这是导致出错的原因。正确的应该是:
printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f",b,d,c,A,e);
第2个回答  2011-08-29
printf("请输入录入次数:");
scanf("%d",b);
for(c=0;c!=b;c++)

这里b前面是不是少了&
第3个回答  2011-08-29
编译错,还是运行错?追问

运行错

第4个回答  2011-08-29
scanf("%d",&f); 变量前少个&
相似回答