在线等~急求写个C语言程序!!!
请将算法和主测试函数都写出来!要求有测试数据和测试结果数据。
谢谢!不胜感激!
写出来了我将另送100分以示感谢!
高手帮忙啊~~~~~~~高手快出来呀!@!!! 展开
理解了,觉得不是很难,就给你写了一个,请参考。
有问题,明天早晨8点前Hi我哈。
代码如下,测试数据及测试结果见图。
#include <stdio.h>
#include <stdlib.h>
#define QUEUE_SIZE 10
/* 循环队列结构体 */
typedef struct {
int front; /* 队列头 */
int rear; /* 队列尾 */
int length; /* 记录队列元素个数 */
int data[QUEUE_SIZE]; /* 存放队列元素值的数组 */
} CirQueue;
/* 初始化队列 */
void initQueue(CirQueue *Q)
{
Q->front = Q->rear = 0;
Q->length = 0;
}
/* 判断队列是否为空 */
int QueueEmpty(CirQueue *Q)
{
return Q->length == 0;
}
/* 判断队列满 */
int QueueFull(CirQueue *Q)
{
return Q->length == QUEUE_SIZE;
}
/* 入队列 */
void EnQueue(CirQueue *Q, int data)
{
if (QueueFull(Q))
printf("队列已经满了.\n");
Q->length++; /* 队列元素个数加1 */
Q->data[Q->rear] = data; /* 将新元素插入队尾 */
Q->rear = (Q->rear+1)%QUEUE_SIZE; /* 将队尾加1 */
}
/* 出队列 */
int Dequeue(CirQueue *Q)
{
int temp;
if (QueueEmpty(Q))
printf("队列已经为空!\n");
temp = Q->data[Q->front];
Q->length--; /* 队列元素个数减1 */
Q->front = (Q->front+1)%QUEUE_SIZE; /* 队列头加1 */
return temp;
}
/* 测试程序 */
int main()
{
CirQueue Q;
int input = 0; /* 入队数据,由用户输入*/
/* 初始化队列 */
initQueue(&Q);
printf("请输入入队数据:\n");
/* 入队操作 */
while(!QueueFull(&Q))
{
scanf("%d\n", &input);
EnQueue(&Q, input);
}
printf("出队数据:\n");
/* 出队操作 */
while(!QueueEmpty(&Q))
{
printf("%d ", Dequeue(&Q));
}
printf("\n");
return 0;
}
|ㄨ灬厷宔
说的那样就行;
没明白第一个回答的意思,还调了一个函数,然后又写了两个main()
函数;
明显有问题呃.
void
main()
{
int
n;
printf("请输入n值:");
scanf("%d",&n);
printf("%d",n);
}