南邮23考研复试上机NOJ官方题库 [1015小明与选择题] C语言实现
一 、题目链接
小明与选择题
二、题目截图
三、 代码答案:(c语言实现)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int choose(float* arr) {
if (arr[0] == arr[1] && arr[0] == arr[2] && arr[0] == arr[3]) {
return 1;
}
float avg = (arr[0] + arr[1] + arr[2] + arr[3]) / 4;
int long1 = 0, short1 = 0;
int longindex = 0, shortindex = 0;
for (int i = 0; i < 4; i++) {
if (arr[i] > avg) {
longindex = i;
long1++;
}
else if (arr[i] < avg) {
shortindex = i;
short1++;
}
else if (arr[i] == avg) return 2;
}
if (long1 > short1) {
return shortindex;
}
else if (long1 < short1) return longindex;
else if (long1 == short1) return 2;
}
float arr[4];
int main() {
for (int i = 0; i < 4; i++) {
scanf("%f", &arr[i]);
}
char res[4] = { 'A', 'B', 'C', 'D' };
int a = choose(arr);
printf("%c", res[a]);
return 0;
}
- 这题主要是计算平均值的时候要注意要用float类型, 我索性直接将输入的数字也搞成float类型, 这样方便与平均数进行比较。