vs可以运行linux就断错误,求各位帮忙看一下,vs里能运行正确为啥在linux运行不对啊...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

不好意思,各位,那个是在vs下写的,这个才是在linux下用.c文件写的,但是运行出来可以读取那个Menu.txt文件,也可以把内容存入account.txt文件,就是那个结账那里输出的结果不对啊,好像挺乱的,我实在没发现程序那里有错误,在vs里都正常啊-----------------------------以下是在linux下写的:

#include

#include

#include

int main()

{

FILE *fp;

FILE *fq;

char caidan[9][100];

int z=0,i,j,bianhao,shuliang1,k;

int huizong=0;

char name[8][20]={"青椒土豆丝","回锅肉","蒜蓉油麦菜","凉拌牛肉","干锅鸡","葱爆羊肉","油焖大虾","凉拌黄瓜"};

int shuliang[8]={0};

int price[8]={8,18,10,20,18,25,28,10};

int zongjia[8]={0};

char c;

if((fp=fopen("Menu.txt","r"))==NULL)

{

printf("无法打开文件\n");

exit(0);

}

while(fgets(caidan[z],50,fp)!=NULL)

{

printf("%s",caidan[z]);

z++;

}

fclose(fp);

printf("请确定点菜(a)或者结账(b)\n");

while(1)

{

c=getchar();

if (c=='a')

{

while (1)

{

printf("请输入菜品编号和数量(如需返回点菜和结账页面输入9):");

scanf("%d,%d",&bianhao,&shuliang1);

if (bianhao==0)

{

return 0;

}

shuliang[bianhao-1]=shuliang1;

switch (bianhao)

{

case 1:zongjia[0]=price[0]*shuliang1; break;

case 2:zongjia[1]=price[1]*shuliang1; break;

case 3:zongjia[2]=price[2]*shuliang1; break;

case 4:zongjia[3]=price[3]*shuliang1; break;

case 5:zongjia[4]=price[4]*shuliang1; break;

case 6:zongjia[5]=price[5]*shuliang1; break;

case 7:zongjia[6]=price[6]*shuliang1; break;

case 8:zongjia[7]=price[7]*shuliang1; break;

case 9: break;

default:printf("输入错误"); break;

}

if (bianhao==9)break;

}

for (i=0;i<8;i++)

{

if (zongjia[i]!=0)

{

huizong+=zongjia[i];

}

}

}

if (c=='b')

{

if((fq=fopen("account.txt","w"))==NULL)

{

printf("无法打开文件\n");

exit(0);

}

printf("菜品编号 菜品名称 菜品价格 菜品数量 总价\n");

fputs("菜品编号 菜品名称 菜品价格 菜品数量 总价\n",fq);

for (j=0;j<8;++j)

{

if (shuliang[j]!=0)

{

k=j+1;

printf("00%d%18s%12d:00%12d%10d:00\n",k,name[j],price[j],shuliang[j],zongjia[j]);

fprintf(fq,"00%d%18s%12d:00%12d%10d:00\n",k,name[j],price[j],shuliang[j],zongjia[j]);

}

}

printf(" 汇总=%d:00元\n",huizong);

fprintf(fq," 汇总=%d:00元\n",huizong);

fclose(fq);

}

if (c=='d')break;

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值