| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 426 人关注过本帖
标题:C语言计算税费的程序有问题,新手求解
只看楼主 加入收藏
csy294745333
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2012-3-27
结帖率:9.09%
收藏
已结贴  问题点数:20 回复次数:4 
C语言计算税费的程序有问题,新手求解
程序代码:
#include <stdio.h>
#include <stdlib.h>
struct tax
{
      float taxrate;
      float beforetax;
      float lowline;
}taxx[100];
struct tax taxx[1]={0,0,0};
struct tax taxx[2]={0.05,0,1600};
struct tax taxx[3]={0.1,25,2100};
struct tax taxx[4]={0.15,175,3600};
struct tax taxx[5]={0.2,625,6600};
struct tax taxx[6]={0.25,3625,21600};
struct tax taxx[7]={0.3,8625,41600};
struct tax taxx[8]={0.35,14625,61600};
struct tax taxx[9]={0.4,21625,81600};
struct tax taxx[10]={0.45,29625,101600};            //分别为十档的对应税率与其上一档总税金
float tax(float a,float b,float c) //a为上一档总税金,b此档应缴税部分,c为此档税率
{
      float y;
      y=a+b*c;
      return y;
}
main()
{
      float x,y,a,b;
      int i;
      do
      {
            printf("please input income amount(more than zero)\n");
            scanf("%f",&x);
      }while(x<=0);
      if(x>=1||x<=1600)
      {
      i=1;
      }
      elseif(x>=1601||x<=2100)
      {
      i=2;
      }
      elseif(x>=2101||<=3600)
      {
      i=3;
      }
      elseif(x>=3601||x<=6600)
      {
      i=4;
      }
      elseif(x>=6601||<=21600)
      {
      i=5;
      }
      elseif(x>=21601||x<=41600)
      {
      i=6;
      }
      elseif(x>=41601||x<=61600)
      {
      i=7;
      }
      elseif(x>=61601||x<=81600)
      {
      i=8;
      }
      elseif(x>=81601||x<=101600)
      {
      i=9;
      }
      elseif(x>=101600)
      {
      i=10;
      }
      a=taxx[i].beforetax;
      b=taxx[i].taxrate;
      c=x-taxx[i].lowline;
      y=tax(a,c,b);
      printf("your income is %f\nyou should pay %f for tax.\n",x,y);
      system("pause");
}
struct tax taxx[1]={0,0,0}; 有错误,报错:conflicting types for 'taxx'
为什么?
搜索更多相关主题的帖子: 计算 C语言 color 
2012-05-21 20:03
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
收藏
得分:5 
taxx[1].taxrate = 0;
taxx[1].beforetax = 0;
taxx[1].lowline = 0;
把你main函数外面的这些taxx之类的赋值操作都以上面的方式放在main函数里面赋值,你这种赋值方式只适合于声明的时候赋初值,你定义结构体时就声明了,但是没有赋初值,就不能这样用了。
2012-05-21 21:17
如此悠然
Rank: 2
等 级:论坛游民
帖 子:62
专家分:86
注 册:2012-5-18
收藏
得分:5 
我也是新手- -!不过你比我学的多多啦,互相勉励啦,顶了!!

——————
严谨
2012-05-21 21:31
JON_me
Rank: 2
等 级:论坛游民
帖 子:30
专家分:68
注 册:2012-5-4
收藏
得分:5 
你的数组貌似没有定义啊!就是taxx[100];
 struct tax taxx[1]={0,0,0};
 struct tax taxx[2]={0.05,0,1600};
 struct tax taxx[3]={0.1,25,2100};
 struct tax taxx[4]={0.15,175,3600};
 struct tax taxx[5]={0.2,625,6600};
 struct tax taxx[6]={0.25,3625,21600};
 struct tax taxx[7]={0.3,8625,41600};
 struct tax taxx[8]={0.35,14625,61600};
 struct tax taxx[9]={0.4,21625,81600};
 struct tax taxx[10]={0.45,29625,101600};
没有定义定义什么类型。

因为爱情,不会轻易悲伤······
2012-05-21 22:00
drall
Rank: 1
等 级:新手上路
帖 子:5
专家分:8
注 册:2012-3-22
收藏
得分:5 
直接定义数组struct tax taxx[9]={{0,0,0},{},{},,,{}};
2012-05-22 23:08
快速回复:C语言计算税费的程序有问题,新手求解
数据加载中...
 
   



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

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