天天看點

小習題:歌唱比賽打分一.題目大概:二.算法分析:三.代碼實作:四.結果:

一.題目大概:

某次校園歌唱比賽,有10位評委打分,打分規則是:去掉一個最低分,去掉一個最高分,剩下的8個分數之平均分就是該選手的分數。

二.算法分析:

1.第一種:

(1)定義一個浮點型數組score,以及三個浮點型變量max、min、sum。

(2)利用一個for循環語句将10次的分數輸入到數組中,并同時給max、min賦予第一次的值(友善後面的取最大值與最小值)。

(3)再利用一個for循環語句,對這十次分數取最大值與最小值(用兩個if語句來實作),同時将這十次的分數的和給求出。

(4)利用printf語句将最大值與最小值列印出來,以及将(sum-max-min)/8這個公式計算并列印結構出來。

2.第二種:

(1)定義四個浮點型變量score、max、min、sum(初始化為0)。

(2)利用一個for循環語句,将十次成績輸入進來(如果i為1,說明是第一次輸入成績,則給min、max賦予初值,如果不是,則進行比較,然後取最大值與最小值)。

(3)在循環中進行求和,求sum。

(4)利用printf語句将最大值與最小值列印出來,以及将(sum-max-min)/8這個公式計算并列印結構出來。

三.代碼實作:

(1)第一種:

#include<stdio.h>

int main()
{
	float score[10];
	float max,min,sum=0;

	printf("請輸入十次評分:");

	for(int i=0;i<10;i++)
	{
		scanf("%f",score+i);

		if(i==0)
			max=min=score[i];
	}

	for(int i=0;i<10;i++)
	{
		if(max<score[i])
			max=score[i];
		if(min>score[i])
			min=score[i];
		
		sum+=score[i];
	}

	printf("最大分數為%.2f\n",max);
	printf("最小分數為%.2f\n",min);
	printf("最終分數為%.2f\n",(sum-max-min)/8);

	return 0;
}
           

(2)第二種:

#include<stdio.h>

int main()
{
	float score,min,max,sum=0;

	printf("請輸入十次評分:");

	for(int i=1;i<=10;i++)
	{
		scanf("%f",&score);

		if(i==1)
			max=min=score;
		else
		{
			if(max<score)
				max=score;
			if(min>score)
				min=score;
		}

		sum+=score;
	}

	printf("最佳成績為:%.2f\n",max);
	printf("最差成績為:%.2f\n",min);
	printf("最終成績為:%.2f\n",(sum-max-min)/8);

	return 0;
}
           

四.結果:

(1)第一種:

小習題:歌唱比賽打分一.題目大概:二.算法分析:三.代碼實作:四.結果:

(2)第二種: 

小習題:歌唱比賽打分一.題目大概:二.算法分析:三.代碼實作:四.結果:

繼續閱讀