PAT_B_1077_浜掕瘎鎴愮哗璁$畻

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT_B_1077_浜掕瘎鎴愮哗璁$畻相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/%e8%a6%81%e6%b1%82' title='瑕佹眰'>瑕佹眰   瓒呰繃   缁熻   highlight   鏍煎紡   flag   void   als   鎬濊矾   

棰樼洰鎻忚堪锛?/span>

鍦ㄦ禉澶х殑璁$畻鏈轰笓涓氳涓紝缁忓父鏈変簰璇勫垎缁勬姤鍛婅繖涓幆鑺傘€備竴涓粍涓婂彴浠嬬粛鑷繁鐨勫伐浣滐紝鍏朵粬缁勫湪鍙颁笅涓哄叾琛ㄧ幇璇勫垎銆傛渶鍚庤繖涓粍鐨勪簰璇勬垚缁╂槸杩欐牱璁$畻鐨勶細鎵€鏈夊叾浠栫粍鐨勮瘎鍒嗕腑锛屽幓鎺変竴涓渶楂樺垎鍜屼竴涓渶浣庡垎锛屽墿涓嬬殑鍒嗘暟鍙栧钩鍧囧垎璁颁负 G?1?? 锛涜€佸笀缁欒繖涓粍鐨勮瘎鍒嗚涓?G?2?? 銆傝缁勫緱鍒嗕负 (G?1?? +G?2?? )/2锛屾渶鍚庣粨鏋滃洓鑸嶄簲鍏ュ悗淇濈暀鏁存暟鍒嗐€?
鏈灏辫姹備綘鍐欎釜绋嬪簭甯姪鑰佸笀璁$畻姣忎釜缁勭殑浜掕瘎鎴愮哗銆?

杈撳叆鏍煎紡锛?
杈撳叆绗竴琛岀粰鍑轰袱涓鏁存暟 N锛?gt; 3锛夊拰 M锛屽垎鍒槸鍒嗙粍鏁板拰婊″垎锛屽潎涓嶈秴杩?100銆傞殢鍚?N 琛岋紝姣忚缁欏嚭璇ョ粍寰楀埌鐨?N 涓垎鏁帮紙鍧囦繚璇佷负鏁村瀷鑼冨洿鍐呯殑鏁存暟锛夛紝鍏朵腑绗?1 涓槸鑰佸笀缁欏嚭鐨勮瘎鍒嗭紝鍚庨潰 N−1 涓槸鍏朵粬缁勭粰鐨勮瘎鍒嗐€傚悎娉曠殑杈撳叆搴旇鏄?[0,M] 鍖洪棿鍐呯殑鏁存暟锛岃嫢涓嶅湪鍚堟硶鍖洪棿鍐咃紝鍒欒鍒嗘暟椤昏蹇界暐銆傞鐩繚璇佽€佸笀鐨勮瘎鍒嗛兘鏄悎娉曠殑锛屽苟涓旀瘡涓粍鑷冲皯浼氭湁 3 涓潵鑷悓瀛︾殑鍚堟硶璇勫垎銆?

杈撳嚭鏍煎紡锛?
涓烘瘡涓粍杈撳嚭鍏舵渶缁堝緱鍒嗐€傛瘡涓緱鍒嗗崰涓€琛屻€?

杈撳叆鏍蜂緥锛?
6 50
42 49 49 35 38 41
36 51 50 28 -1 30
40 36 41 33 47 49
30 250 -25 27 45 31
48 0 0 50 50 1234
43 41 36 29 42 29
杈撳嚭鏍蜂緥锛?
42
33
41
31
37
39

鏍稿績鎬濊矾锛?/span>

// 鎶婃垚缁╄褰曞湪Score[] 鏁扮粍涓紝Score[0] 浠h〃鑰佸笀鐨勬墦鍒?
// 缁熻瀛︾敓鐨勬湁鏁堟垚缁╀釜鏁板拰鏈€楂樻渶浣庡垎
// 鏈€鍚庤繍绠楃殑鏃跺€欏噺鍘讳袱涓渶鍊硷紝鏈夋晥鎴愮哗涓暟涔熻鍑忓幓2
printf("%d\n",(int)(((((sum-min_s-max_s)*1.0/num)+Score[0])*1.0/2)+0.5)); 

鏈汉AC浠g爜锛?/span>

// 1077 浜掕瘎鎴愮哗璁$畻
# include <stdio.h>
# define Max 101

int main(void)

	int N, len, num=0, i;
	int flag = -1; // flag鏍囪涓虹涓€涓湁鏁堢殑瀛︾敓鎴愮哗 
	int M, sum=0, min_s, max_s;
	int Score[Max] = 0;
	scanf("%d %d",&N,&M);
	len = N;
	while (len > 0)
	
		sum = 0.0;
		num = 0;
		flag = -1; // 姣忔閮借鍒濆€间负-1 
		// 姣忕粍杩涜鍗曠嫭閬嶅巻锛屾壘鍑烘湁鏁堟垚缁╀釜鏁帮紝鎵惧埌鏈€澶ф渶灏忓€?
		for (i=0; i<N; i++)
		
			// Score[0]涓鸿€佸笀璇勫垎锛屼笉鍙備笌G1璁$畻 
			scanf("%d",&Score[i]); 
			// 鎵惧埌绗竴涓湁鏁堢殑瀛︾敓鎴愮哗 
			if (i>0 && flag==-1)
			
				if (Score[i]>=0 && Score[i]<=M)
					flag = 0;
			
			// 鎶婃壘鍒扮殑瀛︾敓鎴愮哗璁板綍涓哄綋鍓嶇殑鏈€澶ф渶灏忓€?
			if (0 == flag)
			
				// 璁板綍绗竴涓湁鏁堢殑瀛︾敓鎴愮哗 
				min_s = max_s = Score[i];
				flag = 1;
			
			// 缁熻鏈夋晥鍒嗘暟
			if (i>0 && Score[i]>=0 && Score[i]<=M)
			
				sum += Score[i];
				// 鏈夋晥鍒嗘暟鐨勪釜鏁?
				num++;
				// 鏇存柊鏈€澶ф渶灏忓€?
				if (Score[i] > max_s)
					max_s = Score[i];
				if (Score[i] < min_s)
					min_s = Score[i];
			 			 
		  
		 num -= 2;
		 // 鎬绘垚缁╄绠?
		 // 瀛︾敓鎴愮哗涓哄幓鎺夋渶澶ф渶灏忓€肩殑骞冲潎鍊?
		 // 鎬绘垚缁╀负瀛︾敓鏈€缁堟垚缁╁拰鑰佸笀鏈€缁堟垚缁╁潎鍊?
		 printf("%d\n",(int)(((((sum-min_s-max_s)*1.0/num)+Score[0])*1.0/2)+0.5)); 
		
		len--; // 璁$畻涓嬩竴缁?
	
	
	return 0;

RRR

以上是关于PAT_B_1077_浜掕瘎鎴愮哗璁$畻的主要内容,如果未能解决你的问题,请参考以下文章

PAT_B_1067_试密码

PAT_B_1003 我要通过!

PAT_B_1013 数素数

PAT_B_1002 写出这个数

PAT_B_1072 开学寄语

PAT_B_1004 成绩排名