程序设计,c语言
答案:3 悬赏:80 手机版
解决时间 2021-02-23 13:50
- 提问者网友:末路
- 2021-02-22 14:57
程序设计,c语言
最佳答案
- 五星知识达人网友:迟山
- 2021-02-22 15:09
这也值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):",OMIN int 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):",OMIN scanf("%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
#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):",OMIN
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):",OMIN
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:密码:输出两次
全部回答
- 1楼网友:何以畏孤独
- 2021-02-22 17:13
#include
int main()
{
void print();
int mi,ma=
int main()
{
void print();
int mi,ma=
- 2楼网友:神鬼未生
- 2021-02-22 16:26
有提示没?用什么算法来做?比如指针链表什么的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯