2015年苏州大学复试机试
第一题
题目
有36块砖,现在有36个人,男人能搬4块,女人能搬3块,小孩子两人搬一块,求一次搬完这些砖要男人,女人,小孩多少人?
代码
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 12; ++j) {
for (int k = 0; k < 72; ++k) {
if (i + j + k == 36 && (i * 4 + j * 3 + k / 2) == 36 && k % 2 == 0){
cout << "需要男人:" << i << "人,需要女人:" << j << "人,需要孩子:" << k << "人" <<endl;
}
}
}
}
return 0;
}
结果
第二题
题目
- 求一个3*4矩阵所有元素的平均值
- 把这12个元素从大到小排序
代码
#include <iostream>
using namespace std;
void Inpu_Function();
void Sequence();
int Arr_A[4][3];
int Sum_element = 0;
int Arr[13];
int main()
{
//输入3*4矩阵A的元素,并输出平均值
Inpu_Function();
//排序
Sequence();
system("pause");
return 0;
}
void Inpu_Function()
{
double Average_element = 0;
cout << "请输入4*3矩阵A的元素:" << endl;
//输入矩阵元素:
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cout << "请输入第 " << (i + 1) << " 行,第 " << (j + 1) << " 列的元素:";
cin >> Arr_A[i][j];
}
}
//输出矩阵
cout << "输入的矩阵为:" << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cout << Arr_A[i][j] << " ";
Sum_element += Arr_A[i][j];
Arr[(i * 4 + j)] = Arr_A[i][j];
}
cout << endl;
}
//计算平均值
Average_element = static_cast<double> (Sum_element) / 12;
cout << "所有元素的平均值为:" << Average_element << endl;
}
void Sequence()
{
// 冒泡排序
for (int i = 0; i < 12 - 1; ++i) {
for (int j = 0; j < 12 - i - 1; ++j) {
if (Arr[j] < Arr[j + 1]) {
// 交换元素
int temp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
cout << "排序后的数组为:" << endl;
for (int i = 0; i < 12; ++i) {
cout << Arr[i] << " ";
}
cout << endl;
}
结果
最后
此代码为个人编写,题目来自互联网,使用平台为Clion,C++17标准。
由于博主才疏学浅,如有错误请多多指正,如有更好解法请多多交流!