用C语言试编程,输入一组整型数据,并将这些数据进行 min-max 标准化后输出
时间: 2024-10-04 09:03:25 浏览: 36
在C语言中,你可以使用数组或动态内存分配来接收用户输入的一组整数,然后对这些数值进行最小值(min)和最大值(max)标准化处理。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
void normalize(int *data, int n) {
if (n > 0) {
// 找到数组中的最小值和最大值
int min = data[0];
int max = data[0];
for (int i = 1; i < n; i++) {
if (data[i] < min)
min = data[i];
else if (data[i] > max)
max = data[i];
}
// 对每个元素进行标准化,范围从0到1
for (int i = 0; i < n; i++) {
data[i] = ((double)data[i] - min) / (max - min);
}
} else {
printf("Input array is empty.\n");
}
}
int main() {
int size;
printf("Enter the number of integers: ");
scanf("%d", &size);
// 动态分配内存
int* input_data = malloc(size * sizeof(int));
if (!input_data) {
perror("Memory allocation failed");
return 1;
}
printf("Enter %d integers:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &input_data[i]);
}
// 进行标准化处理并输出结果
normalize(input_data, size);
for (int i = 0; i < size; i++) {
printf("%.2f ", input_data[i]); // 控制精度到小数点后两位
}
printf("\n");
// 清理内存
free(input_data);
return 0;
}
```
在这个程序中,我们首先获取用户输入的整数个数,然后创建相应大小的数组存储这些值。接着找到数组中的最小值和最大值,之后遍历数组,对每个值进行标准化处理。最后输出标准化后的结果,并在结束时释放动态分配的内存。
阅读全文