求教c++编程问题,高手进!!!谢谢

此程序为何无法运行,帮我改下好吗?#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h... 此程序为何无法运行,帮我改下好吗?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void main()
{int r;
char a,ch,x,y,*k,*m,*sh;
k=(char *)malloc(20*sizeof(char));//分配可以放得下20个整数的内存空间
m=(char *)malloc(20*sizeof(char));
sh=(char *)malloc(20*sizeof(char));
FILE *fp;
if((fp=fopen("d:\\yd.dat","w"))==NULL)
{ printf("不能打开文件d:\\yd.dat\n"); exit(0);
}
printf("如果本手机充值按#键,其它手机充值按*键\n");
fprintf(fp,"如果本手机充值按#键,其它手机充值按*键\n");
scanf("%c",&a);
fputc(a,fp);
if(a=='*')
{
do
{ printf("请输入被冲值手机号码,以#结束\n");
fprintf(fp,"请输入被冲值手机号码,以#结束\n");
scanf("%s",sh);getchar(ch);
fprintf(fp,"%s\n",sh);
printf("请输入冲值卡号,以#结束");
fprintf(fp,"请输入冲值卡号,以#结束");
scanf("%s",k);getchar(ch);
fprintf(fp,"%s\n",k);

printf("请输入冲值卡的密码,以#结束");
fprintf(fp,"请输入冲值卡的密码,以#结束");
scanf("%s",m);getchar(ch);
fprintf(fp,"%s\n",m);
r=rand()%100+1;
if(r>50)
{ printf("冲值成功,本次冲值为100元.挂机请按*键,继续充值请按#键\n");
fprintf(fp,"冲值成功,本次冲值为100元,挂机请按*键,继续充值请按#键\n");
x==getchar();
fprintf(fp,"%c\n",x);
x=='*';break;
}
else

{ printf("冲值卡号或密码无效,重新输入按#号,挂机按*\n");
fprintf(fp,"冲值卡号或密码无效,重新输入按#号,挂机按*\n");
x=getchar();
fprintf(fp,"%c\n",x);
}while(x=='#');//验证卡号与密码
printf("请你挂机\n");
fprintf(fp,"请你挂机\n");
fclose(fp);exit(0);
}
else if(a=='#')
{
do
{ printf("请输入冲值卡号,以#结束");
fprintf(fp,"请输入冲值卡号,以#结束");
scanf("%s",k);getchar(ch);
fprintf(fp,"%s\n",k);

printf("请输入冲值卡的密码,以#结束");
fprintf(fp,"请输入冲值卡的密码,以#结束");
scanf("%s",m);
getchar(ch);
fprintf(fp,"%s\n",m);
r=rand()%100+1;
if(r>50)
{ printf("冲值成功,本次冲值为100元,请挂机\n");
fprintf(fp,"冲值成功,本次冲值为100元,请挂机\n");break;
}
else
{ printf("冲值卡号或密码无效,重新输入按#号,挂机按*\n");
fprintf(fp,"冲值卡号或密码无效,重新输入按#号,挂机按*\n");

x=getchar();
fprintf(fp,"%c\n",x);
if(x=='*')
break;}
}while(x=='#');
printf("请你挂机\n");
fprintf(fp,"请你挂机\n");
fclose(fp);exit(0);
}
}
展开
 我来答
wangtk1982
推荐于2016-05-07 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1452万
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void main()
{int r;
char a,ch,x,y,*k,*m,*sh;
k=(char *)malloc(20*sizeof(char));//分配可以放得下20个整数的内存空间
m=(char *)malloc(20*sizeof(char));
sh=(char *)malloc(20*sizeof(char));
FILE *fp;

if((fp=fopen("d:\\yd.dat","w"))==NULL)
{ printf("不能打开文件d:\\yd.dat\n"); exit(0);
}
printf("如果本手机充值按#键,其它手机充值按*键\n");
fprintf(fp,"如果本手机充值按#键,其它手机充值按*键\n");
scanf("%c",&a);
fputc(a,fp);
if(a=='*')
{
do
{ printf("请输入被冲值手机号码,以#结束\n");
fprintf(fp,"请输入被冲值手机号码,以#结束\n");
scanf("%s",sh);getchar(ch);
fprintf(fp,"%s\n",sh);
printf("请输入冲值卡号,以#结束");
fprintf(fp,"请输入冲值卡号,以#结束");
scanf("%s",k);getchar(ch);
fprintf(fp,"%s\n",k);

printf("请输入冲值卡的密码,以#结束");
fprintf(fp,"请输入冲值卡的密码,以#结束");
scanf("%s",m);getchar(ch);
fprintf(fp,"%s\n",m);
r=rand()%100+1;
if(r>50)
{ printf("冲值成功,本次冲值为100元.挂机请按*键,继续充值请按#键\n");
fprintf(fp,"冲值成功,本次冲值为100元,挂机请按*键,继续充值请按#键\n");
x==getchar();
fprintf(fp,"%c\n",x);
x=='*';break;
}
else

{ printf("冲值卡号或密码无效,重新输入按#号,挂机按*\n");
fprintf(fp,"冲值卡号或密码无效,重新输入按#号,挂机按*\n");
x=getchar();
fprintf(fp,"%c\n",x);
}
}while(x=='#');//验证卡号与密码
printf("请你挂机\n");
fprintf(fp,"请你挂机\n");
fclose(fp);exit(0);
}

else
if(a=='#')
{
do
{ printf("请输入冲值卡号,以#结束");
fprintf(fp,"请输入冲值卡号,以#结束");
scanf("%s",k);getchar(ch);
fprintf(fp,"%s\n",k);

printf("请输入冲值卡的密码,以#结束");
fprintf(fp,"请输入冲值卡的密码,以#结束");
scanf("%s",m);
getchar(ch);
fprintf(fp,"%s\n",m);
r=rand()%100+1;
if(r>50)
{ printf("冲值成功,本次冲值为100元,请挂机\n");
fprintf(fp,"冲值成功,本次冲值为100元,请挂机\n");break;
}
else
{ printf("冲值卡号或密码无效,重新输入按#号,挂机按*\n");
fprintf(fp,"冲值卡号或密码无效,重新输入按#号,挂机按*\n");

x=getchar();
fprintf(fp,"%c\n",x);
if(x=='*')
break;}
}while(x=='#');
printf("请你挂机\n");
fprintf(fp,"请你挂机\n");
fclose(fp);exit(0);
}
}
songdan1015
2006-06-23
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void main()
{int r;
char a,ch,x,y,*k,*m,*sh;
k=(char *)malloc(20*sizeof(char));//分配可以放得下20个整数的内存空间
m=(char *)malloc(20*sizeof(char));
sh=(char *)malloc(20*sizeof(char));
FILE *fp;
if((fp=fopen("d:\\yd.dat","w"))==NULL)
{ printf("不能打开文件d:\\yd.dat\n"); exit(0);
}
printf("如果本手机充值按#键,其它手机充值按*键\n");
fprintf(fp,"如果本手机充值按#键,其它手机充值按*键\n");

scanf("%c",&a);
fputc(a,fp);
whlile(a=='*')
{
do
{ printf("请输入被冲值手机号码,以#结束\n");
fprintf(fp,"请输入被冲值手机号码,以#结束\n");
scanf("%s",sh);getchar(ch);
fprintf(fp,"%s\n",sh);
printf("请输入冲值卡号,以#结束");
fprintf(fp,"请输入冲值卡号,以#结束");
scanf("%s",k);getchar(ch);
fprintf(fp,"%s\n",k);

printf("请输入冲值卡的密码,以#结束");
fprintf(fp,"请输入冲值卡的密码,以#结束");
scanf("%s",m);getchar(ch);
fprintf(fp,"%s\n",m);
r=rand()%100+1;
if(r>50)
{
printf("冲值成功,本次冲值为100元.挂机请按*键,继续充值请按#键\n");
fprintf(fp,"冲值成功,本次冲值为100元,挂机请按*键,继续充值请按#键\n");
x=getchar();
getchar();
fprintf(fp,"%c\n",x);
if(x=='*')
break;
}
else

{ printf("冲值卡号或密码无效,重
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式