| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 173 人关注过本帖
标题:代码是跟着视屏上边看边打出来的 运行不了 大佬们帮忙指点下哪里出错了
只看楼主 加入收藏
风流泰
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-9-29
结帖率:92%
  已结贴   问题点数:20  回复次数:1   
代码是跟着视屏上边看边打出来的 运行不了 大佬们帮忙指点下哪里出错了
#include<stdio.h>   
#include<malloc.h>

   
typedef struct Queue{
    int * pBase; //类似定义一个名字为pBase的数组
    int front;
    int rear;
}QUEUE;


void init(QUEUE *); //初始化
bool en_queue(QUEUE *,int val);//入值
void traverse_queue(QUEUE *);//遍历输出
bool full_queue(QUEUE *); //判断队列是否为满
bool out_queue(QUEUE *,int * pVal);
bool emput_queue(QUEUE *pQ);


int main(void){
    Queue Q;
    int val;
    init(&Q);
    en_queue(&Q,1);
    en_queue(&Q,2);
    en_queue(&Q,3);
    en_queue(&Q,4);
    en_queue(&Q,5);
    en_queue(&Q,6);
    traverse_queue(&Q);
    if(out_queue(&Q,&val)){
        printf("出队成功,队列出队的元素是%d\n",val);
    }
    else{
        printf("出队失败!\n");
    }
    traverse_queue(&Q);
    return 0;
}


//初始化
void init(QUEUE *pQ){
    pQ->pBase=(int*)malloc(sizeof(int)*6); //指向了一个动态分配的24字节的数组
    pQ->front=0;
    pQ->rear=0;
}


//判断队列是否为满
bool full_queue(QUEUE *){
    if((pQ->rear+1)%6==pQ->front){
        return true;
    }
    else{
        return false;
    }
}


//入值
bool en_queue(QUEUE *pQ,int val){
    if(full_queue(pQ)){
        return false; //判断数组为满返回false
    }
    else{
        pQ->pBase[pQ->rear]=val;
        pQ->rear=(pQ->rear+1)%6;
        return true;
    }
}


//遍历输出
void traverse_queue(QUEUE * pQ){
    int i=pQ->front;
    while(i!=pQ->rear){
        printf("%d",pQ->pBase[i]);
        i=(i+1)%6; //然后i往后移一个
    }
    printf("\n");
    return;     
}


//判断队列是否为空
bool emput_queue(QUEUE *pQ){
    if(pQ->front==pQ->rear){
        return true;
    }
    else{
        return false;
    }
}


//出队
bool out_queue(QUEUE *,int * pVal){
    if(emput_queue(pQ)){
        return false;
    }
    else{
        *pVal=pQ->pBase[pQ->front];
        pQ->front=(pQ->front+1)%6;
        return true;
    }
}
2019-02-11 21:47
cream111
Rank: 2
等 级:论坛游民
帖 子:2
专家分:21
注 册:2019-2-11
  得分:20 
用这份代码就可以了
#include<stdio.h>   
#include<malloc.h>

typedef int bool;
#define true 1
#define false 0
   
typedef struct Queue{
    int * pBase; //类似定义一个名字为pBase的数组
    int front;
    int rear;
}QUEUE;


void init(QUEUE *); //初始化
bool en_queue(QUEUE *,int val);//入值
void traverse_queue(QUEUE *);//遍历输出
bool full_queue(QUEUE *); //判断队列是否为满
bool out_queue(QUEUE *,int * pVal);
bool emput_queue(QUEUE *pQ);


int main(void){
    struct Queue Q;
    int val;
    init(&Q);
    en_queue(&Q,1);
    en_queue(&Q,2);
    en_queue(&Q,3);
    en_queue(&Q,4);
    en_queue(&Q,5);
    en_queue(&Q,6);
    traverse_queue(&Q);
    if(out_queue(&Q,&val)){
        printf("出队成功,队列出队的元素是%d\n",val);
    }
    else{
        printf("出队失败!\n");
    }
    traverse_queue(&Q);
    return 0;
}


//初始化
void init(QUEUE *pQ){
    pQ->pBase=(int*)malloc(sizeof(int)*6); //指向了一个动态分配的24字节的数组
    pQ->front=0;
    pQ->rear=0;
}


//判断队列是否为满
bool full_queue(QUEUE * pQ){
    if((pQ->rear+1)%6==pQ->front){
        return true;
    }
    else{
        return false;
    }
}


//入值
bool en_queue(QUEUE *pQ,int val){
    if(full_queue(pQ)){
        return false; //判断数组为满返回false
    }
    else{
        pQ->pBase[pQ->rear]=val;
        pQ->rear=(pQ->rear+1)%6;
        return true;
    }
}


//遍历输出
void traverse_queue(QUEUE * pQ){
    int i=pQ->front;
    while(i!=pQ->rear){
        printf("%d",pQ->pBase[i]);
        i=(i+1)%6; //然后i往后移一个
    }
    printf("\n");
    return;     
}


//判断队列是否为空
bool emput_queue(QUEUE *pQ){
    if(pQ->front==pQ->rear){
        return true;
    }
    else{
        return false;
    }
}


//出队
bool out_queue(QUEUE *pQ,int * pVal){
    if(emput_queue(pQ)){
        return false;
    }
    else{
        *pVal=pQ->pBase[pQ->front];
        pQ->front=(pQ->front+1)%6;
        return true;
    }
}


[此贴子已经被作者于2019-2-11 22:15编辑过]

2019-02-11 22:08







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078479 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved