#include <stdio.h>
#include "stdlib.h"
#define queuesize 100
typedef int datatype;
typedef struct cirqueue{
datatype data[queuesize];
int frount;
int rear;
int count;
}Cirqueue;//定义
Cirqueue *Q;
void Initqueue(Cirqueue *Q){
Q->rear=Q->frount=0;
Q->count=0;
}//置队空
int Queueempty(Cirqueue *Q){
return Q->count==0;
}//判队空
int Queuefull(Cirqueue *Q){
return Q->count==queuesize;
}//判队满
int Enqueue(Cirqueue *Q,datatype x){
if(Queuefull(Q)){
puts("队满");
return 0;
}
Q->count++;
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%queuesize;
return 1;
}//入队
void Printqueue(Cirqueue *Q){
int i=Q->frount;
if(Q->count==0){
puts("队空");
}
while(i!=Q->rear){
printf("%c",Q->data[i]);
i=(i+1)%queuesize;
}
int main() {
Cirqueue q;
Initqueue(&q);
Enqueue(&q,7);
Printqueue(&q);
return 0;
}
为什么输出是个乱码啊
为什么输出一个乱码,求解答
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
柯本 2023-11-18 23:10关注首先,你的程序中在int main()前少了个},程序无法编译的
然后,你的datatype为int,且你入队时数据为7,你的输出用%c当然是不对了,要用%d的
改printf("%c",Q->data[i]); 为 printf("%d",Q->data[i]);就可以了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报