测试文章

c语言小计

  1. 小计1:有时并不是代码有问题,在对照自己的算法真的对了之后,可以观察对变量是否输入错误;

本代码观察了好几遍 但是测试结果总是有两个数据是错误,在两天后的今天再看,忽然发现原来是对“a”的算法写成“b”,这样造成了错误

  1. 小计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;
	
	
		
		
	
 } 
posted @ 2022-08-06 22:26  18岁的西瓜  阅读(32)  评论(0)    收藏  举报