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); 变量前少个&

C语言编程问题.请高手进(附源码)!!!HELP
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,"此款...

c语言编程问题?可追加悬赏
C语言代码和运行结果如下:输出符合样例,望采纳~附源码链接:定期存款

用c语言编程,对输入的一行字符进行统计分析,要求统计并输出出现的数字字...
C代码和运行结果如图:输出符合样例,望采纳~附源码:include <stdio.h> int main() { char s[100]; \/\/ 输入不超过100字符 int i = 0, cnt[10] = {0}; \/\/ 0-9每个数字字符个数统计 fgets(s, 100, stdin); \/\/ 读入一行字符,包括换行符'\\n'while (s[i] != '\\n') { \/\/ ...

C语言编程怎么设计?
C代码如下:运行结果如下:输出符合题意,望采纳~附源码:include <stdio.h> include <malloc.h> typedef struct _LinkNode { \/\/ 链表结点 int val;struct _LinkNode *next;} LinkNode;LinkNode *initNode(int x) { \/\/ 新建一个链表结点 LinkNode *node = (LinkNode *)malloc(sizeof(Link...

用c语言如何编程计算1到100的绝对值和
第i项的绝对值为2*i-1,再用一个变量sign表示±1系数,每次变号即可 C代码和运行结果如下:原式每两项结果为-2,前100项的结果为-2*50=-100,与输出相符,望采纳~附源码:include <stdio.h> int main() { int i = 1, sum = 0, sign = 1;while (i <= 100) { sum += sign *...

给出坐标的几点之间的最短路径问题 用C语言解 求高手帮忙
\/\/返回最短距离的平方,两个点下标分别存在index1和index2中 \/\/x为所有点x坐标数组,y为所有点y坐标数组,n为个数 int getShortest(int *x,int *y,int n,int& index1,int& index2);int main(int argc, char **argv){ int x[10]={11,3,5,7,1,10,17,18,19,20};int y[10]={...

求C语言编程题
1、编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔的输出该串,请用指针完成。#include<stdio.h>int main(){ char string[]="computer"; char *p=string; while(*p) { printf("%c",*p); p++; p++; } getch();} 2、输入一个字符串string,然后在string里面每个字母间加一个...

C语言服务器程序 运行就出现 segmentation fault 附源码 初学 求大神...
应该是地址越界之类的错误 看代码找错误是很累的事情,可以逐段注释(二分法)看看是哪条语句导致的

一个C语言转义符识别问题。求大佬解答?
C代码和运行结果如下:输入输出符合样例,望采纳~附源码:include <stdio.h> void emoji(char *txt, char s, char t) { int i, j, p = -1; \/\/ p记录转义符s的下标 for (i = 0; txt[i] != '\\0'; ++i) { if (txt[i] == s)p = i;else if (txt[i] == t && p >...

C语言版-数据结构-期末课程设计-大作业(学生成绩管理系统)附源码+实验...
主函数通过预设的账号密码(admin和root)进行登录,然后调用add_student、stu_check、del_stu等函数实现各个功能。add_student函数允许输入一定数量的学生数据,insert_stu函数确保学号唯一性,stu_check则根据学号查找学生信息。排序功能采用冒泡排序,stu_num和sum_grade函数分别用于按学号和总分对学生信息进行...

相似回答