C語言歌星大獎(jiǎng)賽為參賽的選手打分_第1頁
C語言歌星大獎(jiǎng)賽為參賽的選手打分_第2頁
C語言歌星大獎(jiǎng)賽為參賽的選手打分_第3頁
C語言歌星大獎(jiǎng)賽為參賽的選手打分_第4頁
C語言歌星大獎(jiǎng)賽為參賽的選手打分_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C 語言歌星大獎(jiǎng)賽為參賽的選手打分在歌星大獎(jiǎng)賽中,有10個(gè)評委為參賽的選手打分,分?jǐn)?shù)為 1100分。選手最后得分為:去掉一個(gè)最高分和一個(gè)最低分后其余8 個(gè)分?jǐn)?shù)的平均值。請編寫一個(gè)程序?qū)崿F(xiàn)。* 問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)這個(gè)問題的算法十分簡單,但是要注意在程序中判斷最大、最小值的變量是如何賦值的。* 程序說明與注釋#include<stdio.h>int main()int integer,i,max,min,sum;max=-32768;/*先假設(shè)當(dāng)前的最大值 max為C語言整型數(shù)的最小值*/min=32767; /*先假設(shè)當(dāng)前的最小值

2、 min為C語言整型數(shù)的最大值*/* um=0; /*將求累加和變量的初值置為 0*/for(i=1;i<=10;i+)printf("Input number %d=",i);scanf("%d",&integer); /* 輸入評委的評分*/sum+=integer; /* 計(jì)算總分 */if(integer>max)max=integer; /* 通過比較篩選出其中的最高分*/if(integer<min)min=integer; /* 通過比較篩選出其中的最低分*/printf("Canceled max sc

3、ore:%dnCanceled min score:%dn",max,min);printf("Average score:%dn",(sum-max-min)/8); /* 輸出結(jié)果 */* 運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果Input number1=90Input number2=91Input number3=93Input number4=94Input number5=90Input number6=99Input number7=97Input number8=92Input number9=91Input number10=95Canceled ma

4、x score:99Canceled min score:90Average score:92案例七:問 555555 的約數(shù)中最大的三位數(shù)是多少?* 問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)根據(jù)約數(shù)的定義,對于一個(gè)整數(shù)N,除去1和它自身外,凡能整除N的數(shù)即為 N 的約數(shù)。因此,最簡單的方法是用2到N-1之間的所有數(shù)去除N,即可求出N的全部約 數(shù)。本題只要求取約數(shù)中最大的三位數(shù),則其取值范圍可限制在100 到 999 之間。* 程序說明與注釋#include<stdio.h>int main()long i;int j;printf("Pl

5、ease input number:");scanf("%ld",&i);for(j=999;j>=100;j Bif(i%j=0)printf("The max factor with 3 digits in %ld is:%d,n",i,j);break;* 運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果輸入: 555555輸出: The max factor with 3 digits in 555555 is:777案例八:求 13 的 13次方的最后三位數(shù)* 問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)解本

6、題最直接的方法是:將13 累乘 13次方截取最后三位即可。但是由于計(jì)算機(jī)所能表示的整數(shù)范圍有限,用這種 “正確 ” 的算法不可能得到正確的結(jié)果。事實(shí)上,題目僅要求最后三位的值,完全沒有必要求13 的 13 次方的完整結(jié)果。研究乘法的規(guī)律發(fā)現(xiàn):乘積的最后三位的值只與乘數(shù)和被乘數(shù)的后三位有關(guān),與乘數(shù)和被乘數(shù)的高位無關(guān)。利用這一規(guī)律,可以大大簡化程序。* 程序說明與注釋#include<stdio.h>int main()int i,x,y,last=1;/*變量last保存求X的Y次方過程中的部分乘積的后三位*/printf("Input X and Y(X*Y):"

7、;);scanf("%d*%d",&x,&y);for(i=1;i<=y;i+)/*X 自乘 Y次*/last=last*x%1000;/*將last乘X后對1000取模,即求積的后三位*/printf("The last 3 digits of %d*%d is:%dn",x,y,last%1000); /*打印結(jié)果*/* 運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果運(yùn)行結(jié)果Input X and Y(X*Y):13*13The last 3 digits of 13*13 is:253Input X and Y(X*Y):13*20The last

8、 3 digits of 13*20 is:801案例九:100! 的尾數(shù)有多少個(gè)零?* 問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)問題分析與算法設(shè)計(jì)可以設(shè)想:先求出 100! 的值,然后數(shù)一下末尾有多少個(gè)零。事實(shí)上,與上題一樣,由于計(jì)算機(jī)所能表示的整數(shù)范圍有限,這是不可能的。為了解決這個(gè)問題,必須首先從數(shù)學(xué)上分析在100!結(jié)果值的末尾產(chǎn)生零的條件。不難看出:一個(gè)整數(shù)若含有一個(gè)因子5 ,則必然會(huì)在求100! 時(shí)產(chǎn)生一個(gè)零。因此問題轉(zhuǎn)化為求1 到 100這 100 個(gè)整數(shù)中包含了多少個(gè)因子 5。若整數(shù) N 能被 25 整除,則 N 包含 2 個(gè)因子5 ;若整數(shù)N 能被 5 整除,則 N 包含 1 個(gè)因子 5。* 程序說明與注釋#include<stdio.h>int main()int a,count =0;for(a=5;a<=100;a+=5) /循環(huán)從5開始,以 5 的倍數(shù)為步長,考察整數(shù) +count; /若為5 的倍數(shù),計(jì)數(shù)器加1 if(!(a%25) +count; /若為 25的倍數(shù),計(jì)數(shù)器再加1 printf("The numb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論