输入A,B,C三个学生的分数,输出分数居中的那个学生的名字(A、B或C)及考试分数。(如果A、B分数相同,输出学生A及其成绩)
这个题可以把abc的值从大到小存入数组中, 排完序在从数组中取出来。
总共三个数,
第一个数等于第二个数, 就输出第一个数。
第一个数大于第二个数, 就是从第二个数。
#include <stdio.h>
int main()
{
int arr[3]; // 用来存从大到小的数字。
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
arr[0] = a;
arr[1] = b;
arr[2] = c;
int tmp;
// 按照从小到大的顺序把a, b, c存入数组arr中。
if(a < b)
{
arr[0] = b;
arr[1] = a;
if(c > a)
{
arr[1] = c;
arr[2] = a;
}
if(c > b)
{
arr[0] = c;
arr[1] = b;
}
}
else if(a >= b)
{
if(c > b)
{
arr[1] = c;
arr[2] = b;
}
if(c > a)
{
arr[0] = c;
arr[1] = a;
}
}
// 输出中间的数。
// 首先判断arr中前两个数相不相等, 相等输出第一个数, 不等输出第二个数。
if(arr[0] > arr[1]) // 输出第二个数arr[1]
{
if(arr[1] == a) printf("A %d\n", a);
else if(arr[1] == b) printf("B %d\n", b);
else if(arr[1] == c) printf("C %d\n", c);
}
else // 这里是第一个数等于第二个数的情况, 输出第一个数arr[0]。
{
if(arr[0] == a) printf("A %d\n", a);
else if(arr[0] == b) printf("B %d\n", b);
else if(arr[0] == c) printf("C %d\n", c);
}
return 0;
}