1、直接用数值列举法
/*
要求:从女兵方针中挑出最高个的和次高个的,并打印出来
*/
#include<Windows.h>
#include<iostream>
using namespace std;
int main() {
int girls[][4] = {
{179,171,165,156},
{162,157,168,166},
{158,161,166,176},
{171,170,173,166},
{177,165,174,160},
};
int girl000 = 0;//最高女生
int girl001=0; //次高女生
for (int i = 0; i < 20; i++) {
if (girls[i / 4][i % 4] >= girl000)
girl000 = girls[i / 4][i % 4];
}
for (int i = 0; i < 20; i++) {
if (girls[i / 4][i % 4] >= girl001 && girls[i / 4][i % 4] <girl000)
girl001 = girls[i / 4][i % 4];
}
printf_s("最高的女生:%d,次高的女生: %d\n", girl000, girl001);
system("pause");
return 0;
}
2、采用指针数组的方法
/*
要求:从女兵方针中挑出最高个的和次高个的,并打印出来
*/
#include<Windows.h>
#include<iostream>
using namespace std;
int main() {
int girls[][4] = {
{179,171,165,156},
{162,157,168,166},
{158,161,166,176},
{171,170,173,166},
{177,165,174,160},
};
/*第一种方法,采用直接列举法
int girl000 = 0;
int girl001=0;
for (int i = 0; i < 20; i++) {
if (girls[i / 4][i % 4] >= girl000)
girl000 = girls[i / 4][i % 4];
}
for (int i = 0; i < 20; i++) {
if (girls[i / 4][i % 4] >= girl001 && girls[i / 4][i % 4] <girl000)
girl001 = girls[i / 4][i % 4];
}
printf_s("最高的女生:%d,次高的女生: %d\n", girl000, girl001);
*/
//第二种方法,指针数组法
int* qishou[2];
if (girls[0][0] <= girls[0][1]) {
qishou[0] = &girls[0][1];
qishou[1] = &girls[0][0];
}
else {qishou[0] = &girls[0][0];
qishou[1] = &girls[0][1];
}
for (int i = 2; i < 20; i++) {
if (girls[i / 4][i % 4] >= * qishou[0]) {
*qishou[1] = *qishou[0];
*qishou[0] = girls[i / 4][i % 4];
}
else if (girls[i / 4][i % 4] < *qishou[0] && girls[i / 4][i % 4] >=* qishou[1]) {
*qishou[1] = girls[i / 4][i % 4];
}
else {
continue;
}
}
printf_s("最高的女兵:%d,次高的女兵:%d\n", *qishou[0], *qishou[1]);
system("pause");
return 0;
}