}
实验六
*⑴输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。
*注:
LT是小于的意思,lessthan
*/
#include
constdoubleLOWER=-10000;
voidmain()
{
doublescore[10];
doublehighestScore=LOWER;
doubleaverage=0;
doublenumLTaverage=0;
//输入、求最高分、求总分
for(inti=0;i<10;++i)
{
cout<<"Pleaseinputthescore("<
";
cin>>score[i];
if(highestScoreaverage+=score[i];
}
average/=10;
//求成绩低于平均分的人数
for(i=0;i<10;++i)
if(score[i]cout<<"Theaveragescoreis"<cout<<"Thehighestscoreis"<cout<<"ThenumberofLTaverageis"<}
/*
*⑵分别用冒泡法和选择法对输入的10个整数按由大到小排序。
*冒泡法参见课本第四章课后作业第四题
*/
#include
voidmain()
{
intmyArray[10];
intouter,inner;
intimax;
for(inti=0;i<10;++i)
{
cout<<"Inputanumber:
";
cin>>myArray[i];
}
for(outer=0;outer<10;++outer)
{
//在下标位outer到9之间的元素中寻找最大值
imax=outer;
for(inner=outer+1;inner<10;++inner)
if(myArray[imax]//将最大值与下标为outer的元素交换
inttemp=myArray[outer];
myArray[outer]=myArray[imax];
myArray[imax]=temp;
}
//输出
for(i=0;i<10;++i)
cout<cout<}
/*
*⑶使用折半查找法,在给定的数组中查找某个数据。
*/
#include
constintN=10;
voidmain()
{
intmyArray[N]={1,5,8,13,16,34,67,78,90,100};
intiSearch;
cout<<"Pleasetellmethenumberwhichyouwanttosearch:
";
cin>>iSearch;
intlow=0;
inthigh=N-1;
intmid;
//开始二分查找
while(low<=high)
{
mid=(low+high)/2;
if(myArray[mid]==iSearch)
break;
elseif(myArray[mid]low=mid+1;
else
high=mid-1;
}
//判断是否找到
if(myArray[mid]==iSearch)
cout<<"Wehavefoundthenumber."<else
cout<<"Wehavn'tfoundthenumber."<}
/*
*⑷按杨辉三角形的规律打印以下的数据(要求只打印出10行)。
*1
*11
*121
*1331
*14641
*15101051
*…
*/
#include
voidmain()
{
intyangHui[10][10];
yangHui[0][0]=yangHui[1][0]=yangHui[1][1]=1;
for(inti=2;i<10;++i)
{
yangHui[i][0]=yangHui[i][i]=1;
for(intj=1;j
yangHui[i][j]=yangHui[i-1][j]+yangHui[i-1][j-1];
}
for(i=0;i<10;++i)
{
for(intj=0;j<=i;++j)
cout<cout<}
}
/*
XXX⑸编写程序统计某班英语、语文、数学3门课程的成绩,
*学生人数与成绩由键盘输入,要求统计出每门课程全班
*的总成绩和平均成绩以及每个学生三门课程的总成绩和
*平均成绩。
*/
#include
voidmain()
{
//由用户输入学生人数
intnumStu;
cout<<"Pleaseinputthenumberofstudents:
";
cin>>numStu;
//根据用户输入的人数建立数组,其中0-2列为三门课成绩,最后一列是总分。
//最后添加一行用来存储总分。
int(*p)[4];
p=newint[numStu+1][4];
//将总分置0
p[numStu][0]=p[numStu][1]=p[numStu][2]=0;
for(inti=0;i{
//将每个人的总分置0
p[i][3]=0;
cout<<"IDis"<
\n";
//输入英语成绩
cout<<"PleaseinputthescoreofEng:
";
cin>>p[i][0];
p[i][3]+=p[i][0];
p[numStu][0]+=p[i][0];
//输入物理成绩
cout<<"PleaseinputthescoreofPhy:
";
cin>>p[i][1];
p[i][3]+=p[i][1];
p[numStu][1]+=p[i][1];
//输入英语成绩
cout<<"PleaseinputthescoreofMat:
";
cin>>p[i][2];
p[i][3]+=p[i][2];
p[numStu][2]+=p[i][2];
}
//输出
for(i=0;i{
cout<<"ID"<
\n";
cout<<"Thesumis"<
cout<<".\tTheaverageis"<
cout<}
cout<<"Eng:
sum="<
cout<<"\nPhy:
sum="<
cout<<"\nMat:
sum="<
delete[]p;
}
/*
*⑹编写程序求对矩阵进行转置,即将元素的行列位置交换。
*/
#include
voidmain()
{
intmyMatrix[4][4];
//输入
for(inti=0;i<4;++i)
for(intj=0;j<4;++j)
{
cout<<'('<
";
cin>>myMatrix[i][j];
}
//输出转置前的数组
cout<<"Beforeexchange:
\n";
for(i=0;i<4;++i)
{
for(intj=0;j<4;++j)
cout<cout<}
//转置
for(i=0;i<4;++i)
for(intj=0;j
{/*
*⑺编写程序求两个矩阵的乘积,若矩阵A[N][M]与B[M][K]相乘,
*则得到矩阵C,其行列数为N×K。
注意A的列数与B的行数相同
*,才可以进行乘法操作。
*/
#include
constintN=3;
constintM=4;
constintK=5;
voidmain()
{
//定义数组
inta[N][M],b[M][K],c[N][K];
//输入数组A
cout<<"MatrixA:
\n";
for(inti=0;ifor(intj=0;j{
cout<<'('<
cout<<'('<";
cin>>a[i][j];
}
//输入数组B
cout<<"MatrixB:
\n";
for(i=0;ifor(intj=0;j{
cout<<'('<
cout<<'('<";
cin>>b[i][j];
}
//计算C,并输出
cout<<"MatrixC=AXB:
\n";
for(i=0;i{
for(intj=0;j{
c[i][j]=0;
for(intk=0;kc[i][j]+=a[i][k]*b[k][j];
cout<}
cout<}
}
inttemp=myMatrix[i][j];
myMatrix[i][j]=myMatrix[j][i];
myMatrix[j][i]=temp;
}
//输出转置后的数组
cout<<"Afterexchange:
\n";
for(i=0;i<4;++i)
{
for(intj=0;j<4;++j)
cout<cout<}
}
实验七数组与指针
(一)
4.编写程序并上机调试运行
⑴编写程序,输入5个字符串,输出其中最大者。
要求使用二维字符数组及字符串函数。
#include
#include
constintN=3;
voidmain()
{
chara[N][20];
inti,max=0;
for(i=0;icin.getline(a[i],20);
for(i=1;iif(strcmp(a[i],a[max])>0)
{
strcpy(a[max],a[i]);
}
cout<}
⑵编写程序,将一个字符串中的数字字符都删除。
#include
voidmain()
{
chara[20];
inti=0,j=0;
cout<<”Pleaseinputthecharacters:
”;
cin.getline(a,20);
for(i=0;a[i]!
='\0';i++)
{
if(a[i]<'0'||a[i]>'9')
{
a[j++]=a[i];
}
}
a[j]='\0';
cout<}
XXXXX⑶编写程序,输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。
#include
voidmain()
{
chara[100];
inti,num=0;
cout<<"Pleaseinputthecharacters:
\n";
cin.getline(a,100);
for(i=0;a[i]!
='\0';i++)
{
while(a[i]=='')
{
i++;
}
num++;
while(a[i]!
='')
{
i++;
}
}
cout<<"Thenumberofthewordsare:
"<
}
实验八数组与指针
(二)
4.编写程序并上机调试运行
⑶编写程序,当输入1~7(表示星期几)时,显示相应的星期的英文名称,输入其它整数时则显示错误信息。
#include"iostream.h"
constintM