#include <stdio.h>int main() { int arr[30]; int avg[6]; int sum = 0, count = 0; // 初始化数组 for (int i = 0; i < 30; i++) { arr[i] = 2 + i * 2; } // 计算每五个数的平均值 for (int i = 0; i < 30; i++) { sum += arr[i]; count++; if (count == 5) { avg[i / 5] = sum / 5; sum = 0; count = 0; } } // 输出结果 for (int i = 0; i < 6; i++) { printf("avg[%d] = %d\n", i, avg[i]); } return 0;}
时间: 2024-01-24 11:04:47 浏览: 48
这是一个C语言程序,其功能是将一个由30个元素构成的数组arr中的数值按照每5个一组进行平均,然后存储到另一个长度为6的数组avg中,并输出avg数组中的数值。程序的运行过程如下:
首先,程序通过for循环初始化数组arr,将其中的元素赋值为2 + i * 2,其中i从0到29递增。
然后,程序再次通过for循环对数组arr进行遍历,将每5个数值的和计算出来,并将计算出的平均值存储到数组avg中,同时在计算完每组平均值之后,程序会将计数器count和累加器sum重置为0,以便计算下一组平均值。
最后,程序再次通过for循环遍历数组avg,并输出其中的数值。
如果您有任何疑问,请随时提出。
相关问题
1用C语言随机生成一组(20个)两位整数,完成如下功能: (1)分别统计输出奇偶数的个数,并求出偶数和、奇数平均值; (2)编写排序函数sort(int a[],int n)实现将数组从小到大排序,在主函数中调用sort函数对这组(20个)整数进行排序,输出排序结果; (3)不重新排序的前提下(即:前后对调),把数组改为从大到小排序并输出结果。
好的,我会尽力回答你的问题。以下是用C语言实现你所需要的功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 20
void sort(int a[], int n); // 声明排序函数
int main()
{
int arr[SIZE]; // 存储随机生成的20个数
int even_count = 0; // 偶数个数
int odd_count = 0; // 奇数个数
int even_sum = 0; // 偶数和
float odd_avg = 0.0; // 奇数平均值
// 用系统时间作为随机数生成器的种子,防止每次生成的随机数都相同
srand((unsigned)time(NULL));
// 随机生成20个两位整数
for (int i = 0; i < SIZE; i++) {
arr[i] = rand() % 90 + 10; // 生成10~99之间的随机数
printf("%d ", arr[i]); // 输出生成的数
if (arr[i] % 2 == 0) { // 如果是偶数
even_count++; // 偶数个数+1
even_sum += arr[i]; // 偶数和加上这个数
} else { // 如果是奇数
odd_count++; // 奇数个数+1
odd_avg += (arr[i] - odd_avg) / odd_count; // 更新奇数平均值
}
}
printf("\n");
printf("偶数个数:%d\n", even_count);
printf("奇数个数:%d\n", odd_count);
printf("偶数和:%d\n", even_sum);
printf("奇数平均值:%f\n", odd_avg);
// 对数组从小到大排序
sort(arr, SIZE);
printf("从小到大排序结果:");
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 把数组改为从大到小排序
for (int i = 0; i < SIZE / 2; i++) {
int temp = arr[i];
arr[i] = arr[SIZE - 1 - i];
arr[SIZE - 1 - i] = temp;
}
printf("从大到小排序结果:");
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
// 排序函数
void sort(int a[], int n)
{
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
```
希望这个代码能够帮到你!如果你有任何其他问题,欢迎再次向我提问。
用c语言统计数组中与全部元素平均值相同的元素的个数intfun
以下是用C语言编写的统计数组中与全部元素平均值相同的元素的个数的函数intfun:
```c
#include <stdio.h>
int intfun(int arr[], int size){
int sum = 0, i, count = 0;
float avg;
for(i=0; i<size; i++){
sum += arr[i];
}
avg = (float)sum/size;
for(i=0; i<size; i++){
if(arr[i] == avg){
count++;
}
}
return count;
}
int main(){
int arr[] = {2, 4, 6, 8, 10};
int size = sizeof(arr)/sizeof(arr[0]);
int result = intfun(arr, size);
printf("The number of elements that are equal to the average of all elements is: %d", result);
return 0;
}
```
在这个函数中,我们先求出了数组中所有元素的总和,并计算了平均值。然后,我们遍历整个数组,如果某个元素等于平均值,则将计数器加一。最后,返回计数器的值,即为数组中与全部元素平均值相同的元素的个数。
在主函数中,我们定义了一个数组arr和它的大小size,并调用intfun函数来计算与平均值相同的元素的个数,并将结果打印出来。
阅读全文