#define _CRT_SECURE_NO_WARNINGS 1
#define MAXSIZE 100
#include <assert.h>
#include <stdio.h>
typedef struct QueueNode
{
int data[MAXSIZE];
int front;
int rear;
}QNode;
void QueueInit(QNode* pq)
{
assert(pq);
pq->front = pq->rear = 0;
}
void QueuePush(QNode* pq, int x)
{
assert(pq);
if (pq->rear == MAXSIZE - 1)
{
printf("队列已满!\n");
return;
}
/*pq->rear = x;
++pq->rear;*/
pq->rear++ = x;
}
int main()
{
QNode q;
QueueInit(&q);
int n = 0;
printf("一共多少人参与约瑟夫环当中:");
scanf("%d", &n);
int m = 0;
printf("报的数字是多少:");
scanf("%d", &m);
int i = 0;
for (i = 0; i < n; ++i)
{
QueuePush(&q, i);
}
return 0;
}
这是我昨日写的一个代码
错误点在于这句:pq->rear++ = x;
pq->rear是一个整型,我们直接把它看成:a++ = x
x也是一个整型,我们就把它看成整型b吧
也就是这个的问题
++或--操作会产生一个临时变量,而对临时变量进行赋值,这是不合适的,临时变量用完后就销毁了。