永发信息网

程序设计,c语言

答案:3  悬赏:80  手机版
解决时间 2021-02-23 13:50
程序设计,c语言
最佳答案
这也值40分...好吧,等下啊我敲代码...
密码不用加防盗保护吧...

写好了,这应该是你要的:
////////程序/////////
#include
#define IMAX 5000
#define IMIN 50
#define OMAX 1000
#define 0MIN 50
long pw,money;
void in()
{
printf("存入数额(IMIN-IMAX):");
int i;
scarf("%ld",&i);
if(i>=IMIN&&i<=IMAX)
{
money+=i;
printf("存入成功,当前金额:%ld\n",money);
return;
}
printf("超出范围!失败,当前金额:%ld\n",money);
return;
}
void out()
{
printf("取出数额(%ld-OMAX):",OMINint i;
scarf("%ld",&i);
if(i>=OMIN&&i<=OMAX&&i<=money)
{
money-=i;
printf("取出成功,当前金额:%ld\n",money);
return;
}
printf("超出范围或透支!失败,当前金额:%ld\n",money);
return;
}
void password()
{
printf("密码操作:\n输入旧密码:");
long i;
scarf("%ld",&i);
if(i!=pw)
{
printf("密码错误!\n");
return;
}
printf("输入新密码:");
scarf("%ld",&i);
printf("再次输入新密码:");
long a;
scarf("%ld",&a);
if(a==i)
{
pw=a;
printf("成功!\n");
return;
}
printf("两次输入的密码不一致,失败!\n");
}
main()
{
pw=111111;money=100;
printf("password:");
int a;
scarf("%ld",&a);
if(a!=pw)return;
while(1)
{
printf("a:存款 b:取款 c:密码:");
char c;
scarf("%c",&c);
switch(c)
{
case 'a':in();break;
case 'b':out();break;
case 'c':password();break;
}
}
}
////////完////////////////
你看看咋样,没上机调试过

注:楼上胡来,这些数字要用long的,防止溢出!而且存取款额不是固定的啊。。。追问运行了一下,还有些错误的地方,能再看一下嘛?追答把错误信息给我吧,我这里调试不方便

错的可能是int和long的类型那里,那是后来改的,可能留了BUG追问就这几个追答调试了一下,错误比想象中多。。。今天不在状态啊。。。70分...不用吧,这么简单个事

修正1:5行0应为O
修正2:为scanf而不是scarf
修正3:函数中定义的量有的是用%ld输入的,把定义时的int全改成long
修正4:每个变量定义都放到函数开头,循环体内的放每次循环开头
修正5:存取款时把IMAX什么的都换成%d,后面再用IMAX
问题6:怎么老是把a:存款 b:取款 c:密码:输出两遍!!!我不知道为什么!!

附上修正后代码:

///////程序////////////
#include
#define IMAX 5000
#define IMIN 50
#define OMAX 1000
#define OMIN 50
long pw,money;
void in()
{
long i;
printf("存入数额(%d-%d):",IMIN,IMAX);
scanf("%ld",&i);
if(i>=IMIN&&i<=IMAX)
{
money+=i;
printf("存入成功,当前金额:%ld\n",money);
return;
}
printf("超出范围!失败,当前金额:%ld\n",money);
return;
}
void out()
{
long i;
printf("取出数额(%ld-%d):",OMINscanf("%ld",&i);
if(i>=OMIN&&i<=OMAX&&i<=money)
{
money-=i;
printf("取出成功,当前金额:%ld\n",money);
return;
}
printf("超出范围或透支!失败,当前金额:%ld\n",money);
return;
}
void password()
{
long i,a;
printf("密码操作:\n输入旧密码:");
scanf("%ld",&i);
if(i!=pw)
{
printf("密码错误!\n");
return;
}
printf("输入新密码:");
scanf("%ld",&i);
printf("再次输入新密码:");
scanf("%ld",&a);
if(a==i)
{
pw=a;
printf("成功!\n");
return;
}
printf("两次输入的密码不一致,失败!\n");
}
main()
{
int a;
pw=111111;money=100;
printf("password:");
scanf("%ld",&a);
if(a!=pw)return;
while(1)
{
char c='a';
printf("a:存款 b:取款 c:密码:");
scanf("%c",&c);
switch(c)
{
case 'a':in();break;
case 'b':out();break;
case 'c':password();break;
}
}
}
/////////完/////////

你解决问题了吗?追问还是有个问题的啊追答差个返回值嘛,主函数里让返回个0不就是了。。。我调试时没这个问题,但会把a:存款 b:取款 c:密码:输出两次
全部回答
#include
int main()
{
void print();
int mi,ma=
有提示没?用什么算法来做?比如指针链表什么的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淘宝卖家未发货 申请退款 卖家一直不确认怎么
求大神解答,iPhone照的照片无法保存,截屏无
请问如何让狗下海游泳,现在它不肯下水
信宜市茂名池洞东安小学怎么去啊,谁知道地址
请从文化角度分析春晚应该如何走出困境
英国发动鸦片战争的根本原因与下列哪一史实关
万里悲秋常作客,百年多病独登台 此句含哪八
板亮村地址在什么地方,想过去办事
如梦清秋什么意思。
经常出现的繁体字对应那些简体字?
天梭 小孩配音的广告
宏状元健德门店地址在什么地方,想过去办事
2013年的驾驶证,实习期内酒后驾驶扣12分,扣
自己开车盐城到盛泽高速要多少钱
若有定义:int a=2,b=3,c=8;,下面表达式
推荐资讯
国航知音卡销卡时,要输入查询密码,那个密码是
老公欠下贷款会连累老婆和女儿吗
侧方停车该怎么踩离合器和刹车
求月之门云若海和原剑网三bgm的曲名对应表
昊柏国际酒店1号楼这个地址在什么地方,我要
华夏幸福是什么
清真园民族饭店我想知道这个在什么地方
文玩城这个地址在什么地方,我要处理点事
【话题作文指导】写作指导爱拼才会赢话题作文
马银宝美食城总店地址有知道的么?有点事想过
8分之几小于25分之7. 0.33小于27分之几 填最
蔓越莓鸡尾酒的做法,蔓越莓鸡尾酒怎么做
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?