输入若干整数,以0为结束。将这些整数读入到一个数组中,输出这个数组元素的个数和中间元素的下标(数组下标从0开始,向下取整)(c语言)
时间: 2024-10-07 07:04:44 浏览: 45
在C语言中,你可以通过以下步骤来完成这个任务:
1. 首先,创建一个动态数组,因为不知道用户会输入多少个整数,动态数组可以适应任意长度。
```c
#include <stdio.h>
#include <stdlib.h> // 引入处理内存分配的头文件
int main() {
int* numbers; // 定义一个整型指针,用于存储输入的整数
int input, size = 0; // 分别记录输入值和数组大小
```
2. 使用`scanf`函数获取用户的输入,并检查是否为0,如果是则表示输入结束。
```c
while (scanf("%d", &input) == 1 && input != 0) { // 只要读到有效整数且不是0
numbers = realloc(numbers, (size + 1) * sizeof(int)); // 动态扩容数组
numbers[size] = input;
size++; // 数组大小加一
}
```
3. 接下来,计算中间元素的下标。如果数组的元素个数是奇数,中间元素就是 `(size - 1) / 2`;如果是偶数,中间元素是 `size / 2` 和 `size / 2 - 1` 的平均值。
```c
int mid_index;
if (size % 2 == 0) {
mid_index = size / 2 - 1;
} else {
mid_index = size / 2;
}
```
4. 最后,输出元素个数和中间元素的下标。
```c
printf("数组中有%d个元素。\n中间元素的下标是:%d\n", size, mid_index);
free(numbers); // 释放动态分配的内存
return 0;
}
```
阅读全文