题1:
输入10个学生5门课的成绩,分别用函数实现下列功能:
(1)计算每个学生的平均分;
(2)计算每门课的平均分;
(3)找出50个分数中最高的分数所对应的学生和课程。
#include<iostream.h>
void aver_student(int grade[][5] ) //定义每个学生的平均分的函数
{
int i,j;
double aver_student;
for(i=0;i<5;i++)
{
double sum=0.0;
for(j=0;j<5;j++)
{
sum+=grade[i][j];
}
aver_student=sum/5.0;
cout<<"第"<<i+1<<"个学生的平均分为:"<<aver_student<<endl;
}
}
void aver_courses(int grade[][5]) //定义每个课程的平均分的函数
{
int i,j;
double sum=0.0,aver_courses;
for(j=0;j<5;j++)
{
double sum=0.0;
for(i=0;i<5;i++)
{
sum+=grade[i][j];
}
aver_courses=sum/5.0;
cout<<"第"<<j+1<<"个课程的平均分为:"<<aver_courses<<endl;
}
}
void max_student(int grade[][5])
{
int i,j,max,a=0,b=0;
max=grade[0][0];
for(i=0;i<5;i++)
{
for(j=1;j<5;j++)
{
if(max<grade[i][j])
{
max=grade[i][j];
a=i+1;
b=j+1;
}
}
}
cout<<"最高分为:"<<max<<"\t该学生为"<<a<<"号"<<"\t课程为"<<b<<"个科目"<<endl;
}
void main()
{
int i,j,grade[5][5];
for(i=0;i<5;i++)
{
cout<<"请输入第"<<i+1<<"个同学的五个单科成绩:";
for(j=0;j<5;j++)
{
cin>>grade[i][j];
}
}
aver_student(grade);
aver_courses(grade) ;
max_student(grade);
}
运行结果:
请输入第1个同学的五个单科成绩:87 98 90 87 92
请输入第2个同学的五个单科成绩:59 97 86 79 100
请输入第3个同学的五个单科成绩:93 81 77 69 84
请输入第4个同学的五个单科成绩:99 98 97 96 95
请输入第5个同学的五个单科成绩:89 88 87 86 85
第1个学生的平均分为:90.8
第2个学生的平均分为:84.2
第3个学生的平均分为:80.8
第4个学生的平均分为:97
第5个学生的平均分为:87
第1个课程的平均分为:85.4
第2个课程的平均分为:92.4
第3个课程的平均分为:87.4
第4个课程的平均分为:83.4
第5个课程的平均分为:91.2
最高分为:100 该学生为2号 课程为5个科目
题2:
从键盘上输入一行字符(50个字符以内),要求分别统计出其中的英文大写字母、小写字母、数字及其他字符的个数。
#include<iostream.h>
void main()
{
int i,a=0,b=0,c=0,d=0;
char str[20]={"tg#J?N+dC*c6@s2_eA8"};
for(i=0;i<19;i++)
{
if(str[i]>='a'&&str[i]<='z')
a+=1;
else if(str[i]>='A'&&str[i]<='Z')
b+=1;
else if(str[i]>='0'&&str[i]<='9')
c+=1;
else
d+=1;
}
cout<<"小写字母:"<<a<<endl;
cout<<"大写字母:"<<b<<endl;
cout<<"数字:"<<c<<endl;
cout<<"其他:"<<d<<endl;
}
运行结果:
小写字母:6
大写字母:4
数字:3
题3:
写一个求Fibonacci数列第n项的递归函数,在主函数中调用此函数求出Finonacci数列的前20项。
#include<iostream.h>
long fibonacci(int n)
{
int f;
if(n==0||n==1)
return 1;
else
f=fibonacci(n-1)+fibonacci(n-2);
return f;
}
void main()
{
long y;
y=fibonacci(20) ;
cout<<y<<endl;
}
运行结果:
10946
题4:
求1000以内的所有完数。
#include<iostream.h>
void main()
{
int i,j,sum;
for(i=1;i<1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
cout<<sum<<endl;
}
}
运行结果:
6
28
496
题5:
从键盘上输入若干个学生的成绩,统计学生的平均成绩,并输出最高和最低成绩,当输入-1时,结束输入。
#include<iostream.h>
void main()
{
double grade[30],max,min,sum=0,aver;
int i,n=0;
for(i=1;i<=30;i++)
{
cin>>grade[i];
if(grade[i]!=-1)
{
sum+=grade[i];
n++;
}
else
break;
}
cout<<n<<endl;
aver=sum/n;
max=grade[1];
min=grade[1];
for(i=2;i<n;i++)
{
if(max<grade[i]) max=grade[i];
if(min>grade[i]) min=grade[i];
}
cout<<"max="<<max<<"\nmin="<<min<<"\naver="<<aver<<endl;
}
运行结果:
65
89
100
98
85
93
92
59
-1
8
max=100
min=65
aver=85.125