c语言完成:征兵要求男性身高在1.60米以上,但有些兵种有更高的要求,例如:空军要求身高要在(1.65,1.85]区间。假设用一个数组存储5个人的身高,请编写程序,去掉不符合空军身高条件的数据。要求 (1)编写函数int delete(double a.intn double lowdouble high); 删除数组a中[low,high]之外的数据,返回最后剩余的数组元素个数。 (2) 在主函数中定义数组,并先输入5个人的身高,调用函数删除1.6-1.85之外的数据,并输出删除后的数组。
时间: 2023-02-13 21:42:49 浏览: 76
这是一种可以实现你要求的程序:
```
#include <stdio.h>
#define MAX_LEN 5
// 删除数组 a 中 [low,high] 之外的数据,返回最后剩余的数组元素个数
int delete(double a[], int n, double low, double high) {
int i, j = 0;
for (i = 0; i < n; i++) {
if (a[i] > low && a[i] <= high) {
a[j] = a[i];
j++;
}
}
return j;
}
int main() {
double heights[MAX_LEN];
int i, n = MAX_LEN;
printf("请输入 5 个人的身高:\n");
for (i = 0; i < n; i++) {
scanf("%lf", &heights[i]);
}
n = delete(heights, n, 1.6, 1.85);
printf("删除后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%.2lf ", heights[i]);
}
printf("\n");
return 0;
}
```
在这段程序中,我们定义了一个函数 `delete`,它的作用是删除数组 `a` 中 `[low,high]` 之外的数据,并返回最后剩余的数组元素个数。在主函数中,我们定义了一个数组 `heights` 存储人的身高,调用函数 `delete` 删除不符合要求的数据,并输出删除后的数组。