0.题目来源

https://www.patest.cn/contests/pat-a-practise/1011

1.题意请自行理解

2.题目坑点

(1)我们发现题目要求的输出是“T T W 37.98”,但是假若真是按照题目做的话,上交是无法显示正确的。真正正确的答案是T T W 37.97。即不需要对后三位进行四舍五入。

3.源代码

#include <stdio.h>
 
int main(){
	double game[10];//存储三轮结果
	
	int i  = 0;
	while(i<9){			
		scanf("%lf",&game[i++]);
	}
	
	double max1 = 0,max2 = 0,max3 = 0;
	char  flag1,flag2,flag3;
	for(i = 0;i<3;i++){
		if(max1 < game[i]){
			max1 = game[i];
			if(i  == 0){
				flag1 = 'W';	
			}
			else if(i == 1){
				flag1 = 'T';
			}
			else if(i == 2){
				flag1 = 'L';
			}			
		}
	}
	
	//求第二轮中最大 
	for(i = 3;i<6;i++){
		if(max2 < game[i]){
			max2 = game[i];
			if(i  == 3){
				flag2 = 'W';	
			}
			else if(i == 4){
				flag2 = 'T';
			}
			else if(i == 5){
				flag2 = 'L';
			}	
		}
	}
	
	
	//求第三轮中最大 
	for(i = 6;i<9;i++){
		if(max3 < game[i]){
			max3 = game[i];
			if(i  == 6){
				flag3 = 'W';	
			}
			else if(i == 7){
				flag3 = 'T';
			}
			else if(i == 8){
				flag3 = 'L';
			}	
		}
	}	
	double profit;	
	profit = (max1*max2*max3*(0.65)-1)*2;
	
	printf("%c %c %c %.2lf",flag1,flag2,flag3,profit);	
}

/***
1.1 2.5 1.7
1.2 3.0 1.6
4.1 1.2 1.1
**/

4.总结

(1)但是学习到该怎么对一个数字进行四舍五入,比如在上面的那一题中,假设我们要将37.975四舍五入到37.98,我们即可使用语句【后两位--->100】

	profit = (profit*100+0.5)/100;
以此类推,如果是【后三位--->1000】……

PAT 1011_PAT