第一题:计算阶乘
题解:
#include <iostream>
using namespace std;
int func(int n)
{
if (n == 1)
{
return 1;
}
if (n >= 2)
{
return n * func(n - 1);
}
}
int main()//计算阶乘
{
int n;
cout << "请输入一个正整数:" << endl;
cin >> n;
cout << func(n) << endl;
system("pause");
return 0;
}
第二题:歌唱比赛
题解:
01、
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int n = 0, m = 0;
int arr[100][20] = { 0 };//成绩存储
double score[100] = { 0 };//数组初始化为0
cout << "请输入两个整数:" << endl;
cin >> n >> m;
for (int i = 0; i < n; i++)//输入成绩
{
for (int j = 0; j < m; j++)
{
cin >> arr[i][j];
}
}
for(int i=0;i<n;i++)//每个同学的成绩升序排序
{
for (int j = 0; j < m-1; j++)//第i个同学的成绩:冒泡排序
{
for (int k = 0; k < m - j - 1; k++)
{
if (arr[i][k] > arr[i][k + 1])
{
int temp = arr[i][k];
arr[i][k] = arr[i][k + 1];
arr[i][k + 1] = temp;
}
}
}
}
for (int i = 0; i < n; i++)//计算最终成绩
{
for (int j = 1; j < m-1 ; j++)
{
score[i] += arr[i][j];
}
score[i] /= (m - 2);
}
for (int i = 0; i < n-1; i++)//找到最高的最终成绩
{
if (score[i] > score[i + 1])
{
int temp = score[i];
score[i] = score[i + 1];
score[i + 1] = temp;
}
}
printf("%.2f", score[n - 1]);
system("pause");
return 0;
}
02、
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int n = 0, m = 0;
int arr[100][20] = { 0 };//存储成绩
double score[100] = { 0 }, max = 0;
cout << "请输入两个整数:" << endl;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)//输入成绩
{
cin >> arr[i][j];
score[i] += arr[i][j];
}
for (int j = 0; j < m - 1; j++)//第i个同学的成绩:冒泡排序
{
for (int k = 0; k < m - j - 1; k++)
{
if (arr[i][k] > arr[i][k + 1])
{
int temp = arr[i][k];
arr[i][k] = arr[i][k + 1];
arr[i][k + 1] = temp;
}
}
}
score[i] = score[i] - arr[i][0] - arr[i][m - 1]; //计算最终成绩
score[i] /= 1.0 * (m - 2);
if (score[i] > max)
{
max = score[i];
}
}
printf("%.2f", max);
system("pause");
return 0;
}
03、
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int n = 0, m = 0;
cout << "请输入两个整数:" << endl;
cin >> n >> m;
double res = -1;
for (int i = 0; i < n; i++)
{
int minNum = 100, maxNum = -1, t;
double sum = 0;
for (int j = 0; j < m; j++)//输入成绩
{
cin >> t;
sum += t;
minNum = min(t, minNum);
maxNum = max(t, maxNum);
}
sum = sum - minNum - maxNum;
sum /= (m - 2);
res = max(res, sum);
}
printf("%.2f", res);
system("pause");
return 0;
}