测试文章
c语言小计
- 小计1:有时并不是代码有问题,在对照自己的算法真的对了之后,可以观察对变量是否输入错误;
本代码观察了好几遍 但是测试结果总是有两个数据是错误,在两天后的今天再看,忽然发现原来是对“a”的算法写成“b”,这样造成了错误
-
小计2:在怀疑自己的代码是否有问题的时候,自己想到了一下几个问题:
问题一:为什么超过三个以上的选择关系,就不用if 而用switch,是不是if能力不够? 答案一:并不是,switch的产生只是方便了计算机对选择语句的运行,更快,更方便:if语句也有能力选择多个问题二:关于数据结构的问题? 答案二:由于int 格式限制了输入和输出为小数 的数,而float double完全可以避免这个问题不用怀疑。
This is a unforgettable program。
#include<stdio.h>
int main()
{
//int sru,baox,a,b;
double pay,sru,baox,a,b;
int t; //这是强行运用switch 而运用的中间变量;
scanf("%lf %lf",&sru,&baox);
a=sru-baox;
if (a>5000)
{
b=a-5000;
if (b<=3000)
{
t=1;
//pay=b*0.03-0;
}
else if (b<=12000)
{
t=2;
//pay=b*0.10-210;
}
else if (b<=25000)
{
t=3;
//pay = b*0.2-1410;
}
else if (b<=35000)
{
t=4;
//pay=b*0.25-2660;
}
else if (b<=55000)
{
t=5;
//pay=b*0.30-4410;
}
else if (b<=80000)
{
t=6;
//pay=b*0.35-7160;
}
else
{
t=7;
//pay=b*0.45-15160;
}
}
else
t=0;
//pay=0.0;
switch(t)
{
case 0:
pay=0.0;
break;
case 1:
pay=b*0.03-0;
break;
case 2:
pay=b*0.10-210;
break;
case 3:
pay = b*0.2-1410;
break;
case 4:
pay=b*0.25-2660;
break;
case 5:
pay=b*0.30-4410;
break;
case 6:
pay=b*0.35-7160;
break;
case 7:
pay=b*0.45-15160;
break;
}
printf("*%.2f",pay);
return 0;
}

浙公网安备 33010602011771号