C++指针单元习题二:
用指针实现:已知一门课,有6个学生,输入他们的成绩。
采用函数完成以下功能:
(1):计算平均分
(2):查找最高分
代码如下:
#include<iostream>
using namespace std;
double AverageScore(double *a ,int n)
{
double sum=0;
double Score;
/*while(n>0)
{
sum+=*a;
a++;
}*/
for(int i=0;i<n;++i)
{
sum+=*(a+i);
}
Score=sum/n;
return Score;
}
double HighestScore(double *b,int n)
{
int k;
double t;
double Highest=0;
for(int i=0;i<n;i++)
{
k=i;
for(int j=0;j<n;++j)
{
if(*(b+k)<=*(b+j))
{
k=j;
}
}
if(k!=i)
{
t=*(b+i);
*(b+i)=*(b+k);
*(b+k)=t;
}
}
Highest=*(b+n-1);
return Highest;
}
int main()
{
int n;
double *data;
cout<<"请输入学生人数n"<<endl;
cin>>n;
double *Score=new double[n];
data=Score; //两个数组间进行赋值
for(int i=0;i<n;++i)
{
cout<<"请输入第"<<i+1<<"个学生的成绩"<<endl;
cin>>*(data+i); //指针方法 等同于Score[i]
//cin>>Score[i];
//cin>>data[i];
}
cout<<"平均分为"<<AverageScore(data,n)<<endl;
cout<<"最高分为"<<HighestScore(data,n)<<endl;
delete Score;
return 0;
}
2020年12月6日