可以写一个C语言求数组中每个值和最小值的差的函数吗
时间: 2023-06-27 14:04:57 浏览: 43
可以的,以下是一个简单的示例代码:
```c
#include <stdio.h>
void diff_array(int arr[], int n) {
int min = arr[0];
//找到数组中的最小值
for(int i = 1; i < n; i++) {
if(arr[i] < min) {
min = arr[i];
}
}
//计算每个值与最小值的差并输出
for(int i = 0; i < n; i++) {
int diff = arr[i] - min;
printf("%d ", diff);
}
}
int main() {
int arr[] = {3, 5, 1, 7, 2};
int n = sizeof(arr) / sizeof(arr[0]);
diff_array(arr, n);
return 0;
}
```
输出结果为:
```
0 2 -2 4 -1
```
其中,`diff_array` 函数接受一个整型数组和数组长度作为参数,先找到数组中的最小值,再遍历数组计算每个值与最小值的差并输出。在 `main` 函数中,我们定义了一个数组并调用 `diff_array` 函数进行测试。
相关问题
C语言判断数组各元素中最大值和最小值的代码怎么写
以下是一个简单的C语言程序,用于计算数组中的最大值和最小值。
```
#include <stdio.h>
int main()
{
int arr[10] = {1, 5, 8, 2, 9, 3, 7, 6, 4, 0};
int max = arr[0], min = arr[0];
int i;
for(i = 1; i < 10; i++)
{
if(arr[i] > max)
{
max = arr[i];
}
if(arr[i] < min)
{
min = arr[i];
}
}
printf("数组中的最大值为:%d\n", max);
printf("数组中的最小值为:%d\n", min);
return 0;
}
```
运行结果如下:
```
数组中的最大值为:9
数组中的最小值为:0
```
在此示例中,我们创建了一个包含10个整数的数组,并将其初始化为一组随机值。然后,我们使用一个for循环来遍历数组中的每个元素,并使用两个if语句来比较当前元素与当前最大值和最小值。如果当前元素大于当前最大值,则将当前元素赋值给max变量,如果当前元素小于当前最小值,则将当前元素赋值给min变量。最终,我们输出max和min的值,即数组中的最大值和最小值。
c语言在整型一堆数组中找出最大值和最小值
可以使用循环遍历整型数组,同时使用两个变量分别记录最大值和最小值,比较每个元素和当前最大值和最小值的大小关系,更新这两个变量即可。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int nums[] = {3, 5, 1, 8, 2, 7};
int len = sizeof(nums) / sizeof(int); // 数组长度
int max = nums[0], min = nums[0]; // 初始化最大值和最小值为数组第一个元素
for (int i = 1; i < len; i++) {
if (nums[i] > max) {
max = nums[i]; // 更新最大值
}
if (nums[i] < min) {
min = nums[i]; // 更新最小值
}
}
printf("最大值为:%d,最小值为:%d\n", max, min);
return 0;
}
```
输出结果为:
```
最大值为:8,最小值为:1
```