c语言用n个随机数编写功能函数并求出n个数的平均数
时间: 2023-05-23 17:07:00 浏览: 84
A:下面是一个使用C语言编写的函数,可以计算n个随机数的平均值:
```
#include <stdio.h>
#include <stdlib.h>
double average(int n) {
int i, sum = 0;
double avg;
for (i = 0; i < n; i++)
sum += rand();
avg = (double)sum / n;
return avg;
}
int main() {
int n;
printf("请输入随机数个数:");
scanf("%d", &n);
printf("随机数的平均值为:%f", average(n));
return 0;
}
```
这个函数首先使用rand函数生成n个随机数,并求和。然后将总和除以n,得到平均值。在主函数中,我们可以通过键盘输入指定随机数的个数,然后调用average函数计算平均值,并输出结果。
相关问题
c语言用n个随机数编写功能函数(n作为参数) 1、编写函数求出n个数的平均数。 2、编写函数求出n个数的最大数的下标。 3、编写函数求出n个数的最小数的下标。 4、编写函数实现n个数的起泡排序。 5、编写函数实现对n个数的进行顺序查找。(显示依次比较的数据以及比较次数,返回查找结果) 6、编写函数实现对n个数的进行二分查找。(显示依次比较的数据以及比较次数,返回查找结果)。
A:
1、计算平均数的函数:
```c
double average(int n, int arr[]) {
int sum = 0;
for(int i = 0; i < n; i++) {
sum += arr[i];
}
return (double)sum/n;
}
```
2、计算最大数下标的函数:
```c
int maxIndex(int n, int arr[]) {
int maxIndex = 0;
for(int i = 1; i < n; i++) {
if(arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
return maxIndex;
}
```
3、计算最小数下标的函数:
```c
int minIndex(int n, int arr[]) {
int minIndex = 0;
for(int i = 1; i < n; i++) {
if(arr[i] < arr[minIndex]) {
minIndex = i;
}
}
return minIndex;
}
```
4、实现冒泡排序的函数:
```c
void bubbleSort(int n, int arr[]) {
for(int i = 0; i < n-1; i++) {
for(int j = 0; j < n-1-i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
5、实现顺序查找的函数:
```c
int sequentialSearch(int n, int arr[], int key) {
int count = 0;
for(int i = 0; i < n; i++) {
count++;
if(arr[i] == key) {
printf("比较次数:%d\n", count);
return i;
}
}
printf("比较次数:%d\n", count);
return -1;
}
```
6、实现二分查找的函数:
```c
int binarySearch(int n, int arr[], int key) {
int low = 0, high = n-1, count = 0;
while(low <= high) {
int mid = (low + high) / 2;
count++;
if(arr[mid] == key) {
printf("比较次数:%d\n", count);
return mid;
}
else if(arr[mid] > key) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
printf("比较次数:%d\n", count);
return -1;
}
```
生成一个C语言 10个数去除一个最高值和最低值 求平均值
下面是一个C语言程序,可以生成10个随机数,去除最高值和最低值后求平均值:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, sum = 0, max = 0, min = 100;
int nums[10];
srand(time(NULL)); // 设置随机数种子
// 生成随机数
for(i = 0; i < 10; i++) {
nums[i] = rand() % 100;
printf("%d ", nums[i]);
if(nums[i] > max) max = nums[i];
if(nums[i] < min) min = nums[i];
}
// 计算平均值
for(i = 0; i < 10; i++) {
if(nums[i] != max && nums[i] != min) {
sum += nums[i];
}
}
printf("\n平均值为: %d", sum / 8);
return 0;
}
```
程序中,首先使用 `srand` 函数设置随机数种子,然后使用 `rand` 函数生成10个随机数并存储到数组 `nums` 中。同时记录数组中的最大值和最小值。接着,使用循环遍历数组,计算去除最高值和最低值后的数字之和。最后求平均值并输出。