+。+哪位大神来修改下作业。给点意见什么,长长长。!
大家好!
敬礼!!
在下纯新手一枚。。
好早就想学习c了,只是因为工作关系。没有太多时间进行学习。。。
加上是自学,进展各种缓慢,现在学到了循环,分叉什么的什么的什么的什么。
然后做了下课后作业。虽然达到了书上所要求的。。但是总觉得不完美什么的。。
所以,附上题目和自己写的代码。。
希望各位同学,大神能帮忙修改下,顺便给点点评啥的。~~~
只有20分,谢谢大家帮忙。(ps.哪位大哥大姐给点分什么的吧。。)
(ps2.据说。csdn里结贴率很重要什么的。所以。18-24小时后,准时来结贴
下面是题目咯。
1.编写程序,要求输入一周中的工作小时数,然后打印工资总额,税金以及净工资。作如下假设;
a, 基本工资等级=10.00美元/小时;
b, 加班(超过40小时)=1.5倍的时间;
c, 税率 前300美元为15%;
下一个150美元为20%;
剩余为25%;
代码如下
#include <stdio.h>
#define JB 1.5 //设置加班倍率
#define SL1 15 //设置税1
#define SL2 20 //设置税2
#define SL3 25 //设置税3
#define gzsj 40
#define ST1 8.75
int main(void)
{
int sj;
int jbsj;
int xz;
double sr;
double shr;
double sc;
printf("********************************************\n");
printf(" 选择每小时工资\n");
printf("1 >> $8.75/小时. 2>>$9.33/小时\n");
printf("3 >> $10.00/小时. 4>>$11.2/小时\n");
printf("5 >> $quit\n");
printf("********************************************\n");
while(scanf("%d",&xz)==1){
switch(xz)
{
case 1 :
sc=ST1;
break;
case 2:
sc=9.33;
break;
case 3:
sc=10.00;
break;
case 4:
sc=11.2;
break;
default:
printf("重新输入:\n");
continue;
}
printf("嗯。没小时$%2.2Lf,请输入工作的时间:\n",sc);
break;
}
while(scanf("%d",&sj)!=0)
{
if(sj<=gzsj)
{
sr=sj*sc;
if(sr>300)
{
shr=((sr-300)*SL2/100)+(300*SL1/100);
printf("税收%2.2f,收入为%2.2f\n",shr,sr-shr);
}
else
{
shr=sr*SL1/100;
printf("要交%2.2f,收入为%2.2f元\n",shr,sr-shr);
}
}
else
{
jbsj=sj-gzsj;
sr=jbsj*sc*JB+gzsj*sc;
if(sr<=450)
{shr=(300*SL1/100)+((sr-300)*SL2/100);
printf("总收入是%2.2f,税是%2.2f,实际收入%2.2f\n",sr,shr,sr-shr);
}
else
{
shr=(300*SL1/100)+(150*SL2/100)+((sr-450)*SL3/100);
printf("总收入是%2.2f,税是%2.2f,实际收入%2.2f\n",sr,shr,sr-shr);}
}
}
}
#include <stdio.h>
#define ST 10.00 //设置每小时工资
#define JB 1.5 //设置加班倍率
#define SL1 0.15 //设置税1
#define SL2 0.20 //设置税2
#define SL3 0.25 //设置税3
#define gzsj 40.0
int main(void)
{
int sj;
double sr;
double shr;
printf("工作了多少个时间呢?\n");
while(scanf("%d",&sj)!=0)
{
sr = sj*ST;
if (gzsj < sj)
{
sr += ((sj-gzsj)*(ST*(JB-1)));
}
printf("原收入为%2.2f\n", sr);
shr = sr*SL1;
if (300 < sr)
{
shr += ((sr-300)*(SL2-SL1));
}
if (450 < sr)
{
shr += ((sr-450)*(SL3-SL2));
}
printf("税收%2.2f,收入为%2.2f\n",shr,sr-shr);
}
}
#include <stdio.h>
#define JB 1.5 //设置加班倍率
#define SL1 15 //设置税1
#define SL2 20 //设置税2
#define SL3 25 //设置税3
#define gzsj 40
#define ST1 8.75
#define ST2 9.33
#define ST3 10.00
#define ST4 11.2
int main(void)
{
int sj;
int jbsj;
int xz;
double sr;
double shr;
double sc;
printf("********************************************\n");
printf(" 选择每小时工资\n");
printf("1 >> $8.75/小时. 2>>$9.33/小时\n");
printf("3 >> $10.00/小时. 4>>$11.2/小时\n");
printf("5 >> $quit\n");
printf("********************************************\n");
while(scanf("%d",&xz)==1){
switch(xz)
{
case 1 :
sc=ST1;
break;
case 2:
sc=ST2;//这里最后都用宏替换。。上下统一一下。。
break;
case 3:
sc=ST3;
break;
case 4:
sc=ST4;
break;
case 5:
return 0;//你这里没有处理选择5的情况。。
default:
printf("重新输入:\n");
continue;
}
printf("嗯。没小时$%2.2Lf,请输入工作的时间:\n",sc);
break;
}
//下边这段帮你改了一下。。
while(scanf("%d",&sj)==1)//这里改为这样吧。。否则退出不了的。。
{
if(sj <= gzsj) sr = sj * sc;
else sr = gzsj * sc + (sj - gzsj) * sc * JB;
if(sr <= 300) shr = sr * SL1 / 100;
else{
if(sr <= 450) sr = 300 * SL1 / 100 + (sr - 300) * SL2 / 100;
else sr = 300 * SL1 / 100 + (450 - 300) * SL2 / 100 + (sr - 450) * SL3 / 100;
}
printf("总收入是%2.2f,税是%2.2f,实际收入%2.2f\n",sr,shr,sr-shr);
}
return 0;
}