用C语言 写一个求平均值 队尾进一个数据 队首就出去一个
时间: 2024-03-08 07:50:39 浏览: 58
C语言写的求平均分
好的,下面是用C语言实现的代码:
```c
#include <stdio.h>
#define MAXSIZE 10
int queue[MAXSIZE]; // 队列数组
int rear = -1; // 队尾指针
int front = -1; // 队首指针
// 往队列中插入一个元素
void enqueue(int data)
{
if (rear == MAXSIZE - 1) // 判断队列是否已满
{
printf("队列已满,无法插入元素!\n");
return;
}
else
{
queue[++rear] = data; // 将数据插入队列尾部
}
}
// 从队列中删除一个元素
int dequeue()
{
if (front == rear) // 判断队列是否为空
{
printf("队列为空,无法删除元素!\n");
return -1;
}
else
{
return queue[++front]; // 返回队列头部元素并将队首指针向后移动一位
}
}
// 计算队列中元素的平均值
float average()
{
int sum = 0; // 元素的和
int count = 0; // 元素的数量
int i;
for (i = front + 1; i <= rear; i++) // 遍历队列中的元素
{
sum += queue[i];
count++;
}
return (float)sum / count; // 计算平均值并返回
}
int main()
{
int i;
for (i = 1; i <= 10; i++) // 往队列中插入10个元素
{
enqueue(i);
}
printf("队列中的元素为:");
for (i = front + 1; i <= rear; i++) // 打印队列中的元素
{
printf("%d ", queue[i]);
}
printf("\n");
printf("队列中元素的平均值为:%.2f\n", average()); // 计算并打印队列中元素的平均值
dequeue(); // 删除队列头部元素
printf("删除队列头部元素后,队列中的元素为:");
for (i = front + 1; i <= rear; i++) // 打印队列中的元素
{
printf("%d ", queue[i]);
}
printf("\n");
printf("删除队列头部元素后,队列中元素的平均值为:%.2f\n", average()); // 计算并打印队列中元素的平均值
return 0;
}
```
运行结果如下:
```
队列中的元素为:1 2 3 4 5 6 7 8 9 10
队列中元素的平均值为:5.50
删除队列头部元素后,队列中的元素为:2 3 4 5 6 7 8 9 10
删除队列头部元素后,队列中元素的平均值为:6.00
```
阅读全文