标题:关于全局变量的问题
只看楼主
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
已结贴  问题点数:10 回复次数:4 
关于全局变量的问题
无聊,写了一个家庭理财管理系统,如果选择进账,和支出,全局变量sum的值不管怎么样都是0.请高手解答
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
float sum=0.0;
void password();
void help();
void lock();
void calculator();
void inquire();
void ncome();
void disburse();
void activity();
void savedata();
void load();
void main()
{

 printf("\n");

 int x;

 printf("\n******************************\n");

 printf("\n家庭理财系统1.0 by sunyh1999\n");

 printf("\n******************************\n");

 printf("请选择管理项目:\n");

 printf("1.详细账目输入\n");

 printf("2.查询当前余额\n");

 printf("3.小工具(计算器)\n");

 printf("4.锁定管理系统\n");

 printf("5.帮助\n");

 printf("6.保存数据\n");

 printf("7.导入数据\n");

 printf("8.退出\n");

 scanf("%d",&x);

 switch(x)

 {case 1: activity();break;
  case 2: inquire(); break;/*这地方敲错了少了括号*/
  case 3: calculator();break;
  case 4: lock();break;
  case 5: help();break;
  case 6: savedata();break;
  case 7: load();break;
  case 8: printf("欢迎再次使用该系统!\n");break;break;
  default:printf ("输入错误!");break; break;

 }
}
void help()
{   printf("1.首次使用本系统时录入家庭支出输入信息后请及时保存!\n");
    printf("2.保存文件默认路径和本软件是同一路径,文件名为“管理信息”.\n");
    printf("3.用本系统录入过信息且保存成功,再次查看管理信息时,请先导入数据后再查看\n");
    printf("4.本系统仅限交流之用,严禁用于商业,版权所有。\n\t\t\t\t\t\t编者:sunyh1999\n\t\t\t\t\t\t2010.7.30\n");
    getch();
    system("cls");
    main();
}
void lock()
{
    long int a;
    printf("请输入密码!\n");
    scanf("%d",&a);
    if(a==123456)
    {printf("密码输入正确,欢迎进入家庭理财系统!\n\n\n\n\n");main();}
    else
    {printf("密码输入错误!\n");}
}
void calculator()
{
int a,c;
char b;
printf("请输入要计算的式子:\n");
scanf("%d%c%d",&a,&b,&c);
switch(b)
{
case '+':printf("%d",a+c);main();break;
case '-':printf("%d",a-c);main();break;
case '*':printf("%d",a*c);main();break;
case '/':if(c==0)
{ printf("除数不能是负数");main();
}
else
printf("%f\n",(float)a/c);break;
default:
printf("输入有误");main();
}
}

void inquire()
{printf("当前余额为:%d元\n",sum);
getchar();
main();
}
void ncome()/*多了个分号*/
{float x;
printf("请输入进账数额:\n");
scanf("%f",&x);
sum=sum+x;
printf("按任意键返回......");
getch();
main();
}
void disburse()
{float x;
printf("请输入支出数额:\n");
scanf("%f",&x);
sum=sum-x;
printf("按任意键返回.......");
getch();
main();
}
void activity()
{
int x;
printf("***********************************\n");
printf("1.支出 2.进账 3.退出\n");
printf("***********************************\n");
scanf("%d",&x);
switch(x)
{
case 1:  disburse();break;activity();
case 2:  ncome();break;activity();
case 3:  printf("欢迎使用,再见!\n");main();break;
case 4:  inquire();break;activity();
}
}
void password()
{
long int a;int password=0;
printf("请输入管理员密码!\n");
scanf("%d",&a);
if (a==123456)
{
printf("密码输入正确,欢迎进入家庭理财系统!\n\n\n\n\n");
password++;
if(password==1)
return;
}
else
{
{printf("密码输入错误!\n");exit(0);}
}
}
void savedata()
{   FILE *fp;
    if((fp=fopen("管理信息.txt","wb"))==NULL)
    {printf("不能打开\n");
     return;
    }
    else
    {fwrite(&sum,sizeof(float),1,fp);
     fclose(fp);
     getch();
     main();
    }
}
void load()
{FILE *fp;

 int i=0;

 int j;

 if((fp=fopen("管理信息.txt","rb"))==NULL)

 {printf("打不开文件!\n");
  main();

 }

 else

 {if(fp!=NULL)

 while(!feof(fp))

 {fread(&sum+i,sizeof(float),1,fp);

 i++;

 }

 fclose (fp);

 i--;

 printf("读取成功!读取了%d个记录,任意键返回!",i);

 j=i;

 getch();

 main();

 }
}

 
搜索更多相关主题的帖子: 变量 全局 
2010-07-17 10:41
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
得分:10 
printf("当前余额为:%d元\n",sum);
改为
printf("当前余额为:%f元\n",sum);
2010-07-17 12:01
jmchang
Rank: 2
等 级:论坛游民
帖 子:16
专家分:66
注 册:2010-7-14
得分:0 
哦,我也看到问题的所在了。

[url=http://www.]抛光蜡[/url]
2010-07-17 16:35
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
得分:0 
有可能传递的值只是低位。
2010-07-17 17:58
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
得分:0 
低级错误呀,浮点型的打印写出整数型的输出了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-18 10:01



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




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

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