试用c语言编程,输入一组整型数据,并将这些数据进行 min-max 标准化后输出(
时间: 2024-09-23 13:17:03 浏览: 89
C语言数据的输入与输出[归类].pdf
在C语言中,对一组整型数据进行min-max标准化,也称为零一范围(0-1)缩放或最小最大规范化,可以将所有数值映射到0到1之间。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
// 定义函数来计算并返回数组的最大值和最小值
double findMinMax(int arr[], int n) {
double max = arr[0];
double min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
return min, max;
}
// 函数用于标准化给定数组
void normalize(int arr[], double *normalizedArr, int n, double min, double max) {
for (int i = 0; i < n; i++) {
normalizedArr[i] = (arr[i] - min) / (max - min);
}
}
int main() {
int input[] = {10, 50, 20, 80, 30};
int n = sizeof(input) / sizeof(input[0]);
double min, max;
// 计算最小值和最大值
min = findMinMax(input, n)[0];
max = findMinMax(input, n)[1];
double normalizedInput[n];
// 将原始数据标准化
normalize(input, normalizedInput, n, min, max);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", input[i]);
}
printf("\nNormalized array (0-1 range): ");
for (int i = 0; i < n; i++) {
printf("%.2f ", normalizedInput[i]);
}
return 0;
}
```
在这个程序中,我们首先找到输入数组的最小值和最大值,然后使用这些值将每个元素转换为0到1之间的分数。最后,我们打印出原数组和标准化后的结果。
阅读全文