C++程序设计YDaniel Liang 第六章课后习题答案Word文件下载.docx
- 文档编号:8172149
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:18
- 大小:18.29KB
C++程序设计YDaniel Liang 第六章课后习题答案Word文件下载.docx
《C++程序设计YDaniel Liang 第六章课后习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++程序设计YDaniel Liang 第六章课后习题答案Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
\n"
<
maxis"
max<
theoccurrencecountis"
count;
return0;
}
Exercise6_4
doublescores[100];
doublesum=0;
intcount=0;
do
{
Enteranewscore:
scores[count];
sum+=scores[count];
while(scores[count++]>
=0);
doubleaverage=(sum-scores[count])/(count-1);
intnumOfAbove=0;
intnumOfBelow=0;
for(inti=0;
count-1;
i++)
if(scores[i]>
=average)
numOfAbove++;
else
numOfBelow++;
Averageis"
average<
endl;
Numberofscoresaboveorequaltotheaverage"
numOfAbove<
Numberofscoresbelowtheaverage"
numOfBelow<
Exercise6_6
cmath>
constintNUM_OF_PRIMES=50;
//Storeprimenumbers
intprimeNumbers[NUM_OF_PRIMES];
//Countthenumberofprimenumbers
intnumber=2;
//Anumbertobetestedforprimeness
boolisPrime=true;
//Isthecurrentnumberprime?
Thefirst50primenumbersare\n"
//Repeatedlyfindprimenumbers
while(count<
NUM_OF_PRIMES)
//Assumethenumberisprime
isPrime=true;
//Testifnumberisprime
count&
&
primeNumbers[i]<
=sqrt(1.0*number);
//Iftrue,thenumberisnotprime
if(number%primeNumbers[i]==0)
//SetisPrimetofalse,ifthenumberisnotprime
isPrime=false;
break;
//Exittheforloop
//Printtheprimenumberandincreasethecount
if(isPrime)
primeNumbers[count]=number;
//Increasethecount
if(count%10==0)
//Printthenumberandadvancetothenewline
number<
\t"
//Checkifthenextnumberisprime
number++;
Exercise6_8
intaverage(intarray[],intsize){
intsum=0;
size;
sum+=array[i];
returnsum/size;
doubleaverage(doublearray[],intsize){
intlist1[]={1,2,3,4,5,6};
doublelist2[]={5.0,4.4,1.9,2.9,3.4,3.5};
average(list1,6)<
average(list2,6)<
Exercise6_10
intminIndex(intlist[],intsize)
intmin=list[0];
intminIndex=0;
if(min>
list[i])
min=list[i];
minIndex=i;
returnminIndex;
intlist[]=
1,2,4,5,10,100,2,-22
};
Theindexoftheminis"
minIndex(list,8)<
Exercise6_12
voidreverse(intlist[],intsize)
for(inti=0,j=size-1;
size/2;
i++,j--)
inttemp=list[i];
list[i]=list[j];
list[j]=temp;
intmyList[]=
1,2,3,4,5,6,7,8
reverse(myList,8);
8;
myList[i]<
Exercise6_14
#include"
LinearSearch.h"
BinarySearch.h"
SelectionSort.h"
intlist[100000];
100000;
list[i]=rand();
intkey=rand();
longstartTime=time(0);
linearSearch(list,key,100000)<
longendTime=time(0);
Endtime:
endTime<
Starttime:
startTime<
longexecutionTime=endTime-startTime;
Executiontimeforlinearsearchis"
executionTime<
selectionSort(list,100000);
startTime=time(0);
binarySearch(list,key,100000)<
endTime=time(0);
executionTime=endTime-startTime;
Executiontimeforbinarysearchis"
Exercise6_16
/**Themethodforprintingnumbers*/
voidprintList(doublelist[],intsize)
list[i]<
voidbubbleSort(doublelist[],intsize)
boolchanged=true;
changed=false;
for(intj=0;
j<
size-1;
j++)
if(list[j]>
list[j+1])
//swaplist[j]wihtlist[j+1]
doubletemp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
changed=true;
while(changed);
//Initializethelist
doublemyList[]=
5.0,4.4,1.9,2.9,3.4,3.5
//Printtheoriginallist
Mylistbeforesortis:
printList(myList,6);
//Sortthelist
bubbleSort(myList,6);
//Printthesortedlist
\nMylistaftersortis:
Exercise6_18
intm[4][4]=
1,2,4,5
},
6,7,8,9
10,11,12,13
14,15,16,17
4;
sum+=m[i][i];
Sumofdiagonalis"
sum<
Exercise6_20
/**Themethodforsortingthenumbers*/
voidsortAndKeepIndex(intlist[],intindexList[],intsize){
intcurrentMax;
intcurrentMaxIndex;
//InitializeindexList
indexList[i]=i;
for(inti=size-1;
i>
=1;
i--){
//Findthemaximuminthelist[0..i]
currentMax=list[i];
currentMaxIndex=i;
for(intj=i-1;
j>
=0;
j--){
if(currentMax<
list[j]){
currentMax=list[j];
currentMaxIndex=j;
//Swaplist[i]withlist[currentMaxIndex]ifnecessary;
if(currentMaxIndex!
=i){
list[currentMaxIndex]=list[i];
list[i]=currentMax;
//SwaptheindexinindexListtoo
inttemp=indexList[i];
indexList[i]=indexList[currentMaxIndex];
indexList[currentMaxIndex]=temp;
constintNUMBER_OF_WORKERS=8;
doubleworkHours[NUMBER_OF_WORKERS][7]={
{2,4,3,4,5,8,8},
{7,3,4,3,3,4,4},
{3,3,4,3,3,2,2},
{9,3,4,7,3,4,1},
{3,5,4,3,6,3,8},
{3,4,4,6,3,4,4},
{3,7,4,8,3,8,4},
{6,3,5,9,2,7,9}};
//Createanarraytostoretotalweeklyhours
intweeklyHours[NUMBER_OF_WORKERS]={0,0,0,0,0,0,0,0};
NUMBER_OF_WORKERS;
7;
weeklyHours[i]+=workHours[i][j];
intindexList[NUMBER_OF_WORKERS];
//SortweeklyHours
sortAndKeepIndex(weeklyHours,indexList,NUMBER_OF_WORKERS);
//Displayresult
for(inti=NUMBER_OF_WORKERS-1;
i--)
Employee"
indexList[i]<
:
weeklyHours[i]<
return0;
Exercise6_22
constintCOLUMN_SIZE=5;
/**Themethodformultiplyingtwomatrices*/
voidmultiplyMatrix(inta[][COLUMN_SIZE],intb[][COLUMN_SIZE],intresult[][COLUMN_SIZE],introwSize)
COLUMN_SIZE;
for(intk=0;
k<
k++)
result[i][j]+=a[i][k]*b[k][j];
/**Printresult*/
voidprintResult(intm1[][COLUMN_SIZE],intm2[][COLUMN_SIZE],intm3[][COLUMN_SIZE],charop,introwSize)
rowSize;
m1[i][j];
if(i==COLUMN_SIZE/2)
op<
m2[i][j];
="
m3[i][j];
//Createtwomatricesastwodimensionalarrays
intmatrix1[5][5];
intmatrix2[5][5];
intresult[5][5];
//Assignrandomvaluestomatrix1andmatrix2
5;
matrix1[i][j]=rand();
matrix2[i][j]=rand();
multiplyMatrix(matrix1,matrix2,result,5);
Themultiplicationofthematricesis"
printResult(matrix1,matrix2,result,'
*'
5);
Exercise6_24
intboard[8][8];
board[i][j]=rand()%2;
board[i][j];
//Checkrows
boolsame=true;
for(intj=1;
if(board[i][0]!
=board[i][j])
same=false;
if(same)cout<
All"
board[i][0]<
'
sonrow"
//Checkcolumns
if(board[0][j]!
board[0][j]<
soncolumn"
//Checkmajordiagonal
if(board[0][0]==board[i][i])
board[0][0]<
sonmajordiagonal"
//Checksubdiagonal
same=true;
if(board[0][7]==board[i][7-i])
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计YDaniel Liang 第六章课后习题答案 C+ 程序设计 YDaniel 第六 课后 习题 答案