使用C语言】写将一组整形数据min-max标准化输出的代码
时间: 2024-10-05 18:03:26 浏览: 51
在C语言中,你可以使用数组遍历的方式来计算给定整数数组的最小值(min)和最大值(max),然后根据这些值对每个元素进行标准化处理,即 `(value - min) / (max - min)`。这里有一个简单的示例代码:
```c
#include <stdio.h>
void normalize_array(int arr[], int n, float* normalized_arr) {
if (n <= 0) {
printf("Array is empty or has no elements.\n");
return;
}
// 找到最小值和最大值
int min = arr[0];
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min)
min = arr[i];
else if (arr[i] > max)
max = arr[i];
}
// 标准化并存储结果
for (int i = 0; i < n; i++) {
normalized_arr[i] = (float)(arr[i] - min) / (max - min);
}
}
int main() {
int input[] = {5, 10, 15, 20, 25};
int size = sizeof(input) / sizeof(input[0]);
float normalized_output[size];
normalize_array(input, size, normalized_output);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", input[i]);
}
printf("\nNormalized array: ");
for (int i = 0; i < size; i++) {
printf("%.2f ", normalized_output[i]);
}
return 0;
}
```
这段代码首先定义了一个`normalize_array`函数,它接受一个整数数组、数组大小以及一个指向浮点数的指针。在`main`函数中,我们创建了一个测试用的数组`input`,然后调用`normalize_array`将其标准化,并打印原始和标准化后的数组。
运行这段代码后,你会看到原始整数数组及其相应的标准化结果,其中每个值都在0到1之间。
阅读全文