标题:程序运行错误,求详细的解答
只看楼主
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
得分:0 

2014-08-09 11:01
liu122430950
Rank: 4
等 级:业余侠客
威 望:1
帖 子:45
专家分:211
注 册:2010-5-30
得分:3 
我想说,你写的程序各个函数之间的参数传递问题没有弄懂
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void display(int allmoney, int number);
void xuanze(int allmoney, int number);
void sys(int a, int allmoney, int number);
void data();
void password(int allmoney, int number);
void qk(int allmoney, int number);
void ye(int allmoney, int number);
void number_func(int allmoney, int numbe);
void display(int allmoney, int number)
{
    system("cls");
    printf("=================================\n");
    printf("=========取款机==================\n");
    printf("=================================\n");
    printf("       1:取款\n");
    printf("\n");
    printf("       2:查询余额\n");
    printf("\n");
    printf("       3:修改密码\n");
    printf("\n");
    printf("       4:退卡\n");
    printf("=================================\n");
    xuanze(allmoney, number);
}
void xuanze(int allmoney, int number)
{
    int a = 0;//init a = 0
    printf("请输入选择的操作数\n");
    scanf("%d",&a);//添加
    if (a == 1 || a == 2 || a == 3 || a == 4)
    {
        sys(a, allmoney, number);
    }
    else
    {
        printf("错误的操作数,请按任意键继续'''\n");
        getchar();
        getchar();
        display(allmoney, number);
    }
}
void sys(int a, int allmoney, int number)
{
    switch (a)
    {
    case 1:qk(allmoney, number);break;
    case 2:ye(allmoney, number);break;
    case 3:number_func(allmoney, number);break;
    case 4:exit(0);break;
    }
}
void qk(int allmoney, int number)
{
    int money;
    printf("请输入你的取款数(只能是100的整数倍):\n");//记得提示只能是100的整数倍
A:scanf("%d", &money);
  if ((money < 0) || (money > 3000) || (money%100 != 0))
  {
      printf("错误\n");
      goto A;//goto 由于程序的局部性原理,使用goto会使程序运行出现错误。
  }
  else
  {
      printf("请稍等\n");
      if (allmoney < money)
      {
          printf("你的余额不足\n");
          getchar();//等待用户确认
      }
      else
      {
          printf("你已取出%d元\n", money);
          getchar();//等待用户确认
      }
      allmoney = allmoney - money;
      getchar();
      display(allmoney, number);
  }
}
void ye(int allmoney, int number)
{
    fflush(stdin);//将标准输入缓冲区清空,避免getchar读到旧数据使得程序一跳而过
    printf("你的账户余额是%d元\n", allmoney);
    getchar();
    display(allmoney, number);
}
void number_func(int allmoney, int numbe)
{
    int d, j;
    printf("请输入新的密码\n");
B:scanf("%d", &d);
  system("cls");
  printf("确认密码\n");
  scanf("%d", &j);
  system("cls");// "
  if (d != j)
  {
      printf("错误\n");
      goto B;
  }
  else
  {
      numbe = j;
  }
  display(allmoney, numbe);
}
void data()
{
    int number, allmoney;
    printf("请设置初始密码:\n");
    scanf("%d", &number);
    system("cls");
    printf("请设置初始金额:\n");
    scanf("%d", &allmoney);
    system("cls");
    printf("请输入任意键继续\n");
    getchar();
    getchar();
    display(allmoney, number);
}
void password(int number, int allmoney)
{
    int i, m = 0;
    printf("请输入密码\n");//\n
    scanf("%d", &i);
    system("cls");
    if (i != number)
        do
        {
            printf("你输入的密码错误\n");
            m++;
            scanf("%d", &i);
        }
        while (i != number && m < 2);
        if (m > 1)
        {
            display(allmoney, number);
        }
}
void main()
{
    data();//datd 改为data
}
已帮你改好,还有模块间耦合度太高了,
2014-08-09 11:03
我是菜鸟0号
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-8-8
得分:0 
回复 10 楼 宇宙规律
我只是个初学者,适合编写这么复杂的程序吗?
2014-08-09 11:46
我是菜鸟0号
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-8-8
得分:0 
回复 12 楼 liu122430950
谢谢,我可以跟你学习编程吗?
2014-08-09 11:48
我是菜鸟0号
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-8-8
得分:0 
想学习编程,如果不嫌弃的话,可以长时间的教我吗?QQ2814853182,每天16:30~次日6:30之间
2014-08-09 11:58
chenxuemin
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2014-8-9
得分:3 
看不懂。
2014-08-09 15:44
我是菜鸟0号
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-8-8
得分:0 
回复 16 楼 chenxuemin
想跟人学习编程,能长时间教我,每天16:30~次日6:00有时间
2014-08-09 16:42
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
得分:0 








2014-08-09 19:15
liu122430950
Rank: 4
等 级:业余侠客
威 望:1
帖 子:45
专家分:211
注 册:2010-5-30
得分:0 
回复 14 楼 我是菜鸟 0 号
我是菜鸟1号
2014-08-09 19:43
龙牙
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大汉
等 级:贵宾
威 望:17
帖 子:769
专家分:6207
注 册:2013-3-18
得分:3 
回复 10 楼 宇宙规律
你的这程序不能运行吧?

只要心是晴朗的,人生就没有雨天。
2014-08-09 19:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-434834-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.125583 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved