c编程怎么取中间的数字

时间:2025-01-27 04:13:11 网络游戏

在C语言中,取三个整数中间的数字可以通过以下几种方法实现:

方法一:排序法

1. 对三个数进行排序。

2. 排序后,中间的数即为所求。

```c

include

include

int main() {

int a, b, c;

scanf("%d %d %d", &a, &b, &c);

// 排序

if (a > b) {

int temp = a;

a = b;

b = temp;

}

if (b > c) {

int temp = b;

b = c;

c = temp;

}

if (a > b) {

int temp = a;

a = b;

b = temp;

}

// 输出中间的数

printf("%d\n", b);

return 0;

}

```

方法二:计算法

1. 计算三个数的平均值。

2. 将平均值向下取整,即为中间的数字。

```c

include

include

int main() {

int a, b, c;

scanf("%d %d %d", &a, &b, &c);

// 计算平均值并取整

int mid = (a + b + c) / 3;

printf("%d\n", mid);

return 0;

}

```

方法三:使用数组和排序

1. 将三个数放入数组中。

2. 对数组进行排序。

3. 根据数组的下标获取中间的数字。

```c

include

include

int main() {

int a, b, c;

int arr[] = {a, b, c};

int n = sizeof(arr) / sizeof(arr);

// 排序

for (int i = 0; i < n - 1; i++) {

for (int j = 0; j < n - i - 1; j++) {

if (arr[j] > arr[j + 1]) {

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

// 输出中间的数

printf("%d\n", arr[n / 2]);

return 0;

}

```

方法四:输入字符串并提取数字

1. 将输入的三个整数作为字符串读取。

2. 使用`isdigit`和`atoi`函数提取字符串中的数字。

```c

include

include

include

int main() {

char input;

scanf("%s", input);

int a = 0, b = 0, c = 0;

int len = strlen(input);

for (int i = 0; i < len; i++) {

if (isdigit(input[i])) {

int num = input[i] - '0';

if (i == 0 || i == len - 1 || input[i - 1] == ' ' || input[i + 1] == ' ') {

if (i == 0) a = num;

else if (i == len - 1) c = num;

else b = num;

}

}

}

// 输出中间的数

printf("%d\n", b);

return 0;

}

```

这些方法各有优缺点,选择哪种方法取决于具体的应用场景和需求。如果需要处理大量数据或需要高效实现,可以考虑使用排序法或计算法。如果输入数据是字符串形式,可以使用输入字符串并提取数字的方法。