c语言 队列问题//改正如下,但是我觉得你那个出队有点问题,不应当是自己输入要出队的元素吧 , 是让他自己出队吧,然后把这个出队的元素值带回来,再在主函数中输出吧,没给你改,嘿嘿嘿嘿
#include "stdio.h"
#include "stdlib.h"
#define MAXSIZE 5
【C语言队列的主函数 c语言队列的用法】typedef struct k
{
int data[MAXSIZE];
int front,rear;
int num;
}c_k;//声明循环顺序队列的数据类型
//创建循环队列
c_k *create_k()
{
c_k * cq=(c_k *)malloc(sizeof(c_k));//开辟循环队列的空间,并将地址存到变量cq中
cq-front=-1;
cq-rear=-1;
cq-num=0;//初始化为空队列
return cq;//返回队列的地址
}
intIn_ck(c_k * cq,int *x)//-----在传的时候是个地址,所以这要用int *x-------///如果要用int x的话,在调用该函数时就要写成In_ck(cq,rear_x)--//
{
if(cq-num==MAXSIZE)//队列已满
{
printf("The c_k is full!\n");return -1;
}
else//队列不满
{
cq-rear=(cq-rear+1)%MAXSIZE;//形成循环
cq-data[cq-rear]=*x;/////------传的是地址 , 所以这要用*x----/////
cq-num++;//队列中元素个数增1
return 1;
}
}
//出队
int Out_ck(c_k * cq, int *x)//对cq所指向的队列出队 , 将队首元素存到x所指向的变量,并返回是否出队成功
{
if(cq-num==0)//队列为空
{
printf("The k is null!\n");return -1;
}
else//队列非空
{
cq-front=(cq-front+1)%MAXSIZE;//形成循环
*x=cq-data[cq-front];//将队首元素存到x所指向的变量
cq-num--;//队列中元素个数减1
return 1;
}
}
void main()
{
//调用创建队列函数
c_k * cq=create_k();
int rear_x,front_x;
int op,result;
printf("\n请输入 1入队,2出队,3退出:\n");
scanf("%d",op);
while(op!=3)
{
switch(op)
{
case 1:printf("请入入队元素:\n");
scanf("%d",rear_x);////----这要加号,!!!!!
if((result=In_ck(cq,rear_x))==1)////----加了一个if语句 , 在队空时就不输出元素了-----////
printf("入对元素是 %d\n",rear_x);
break;
case 2:printf("请输入出队元素:\n");
scanf("%d",front_x);////----这要加号,!!!!!
if ((result= Out_ck(cq,front_x))==1)////----加了一个if语句,在队空时就不输出元素了-----////
printf("出对元素是 %d\n",front_x);
break;
}
printf("\n请输入 1入队 2出队 3退出:\n");scanf("%d",op);
}
free(cq);/////---动态开辟的,用后要用free()释放;---////
}
C语言里面的主函数是什么意思?主函数就是程序运行时,所在的函数 。
一般习惯使用 main 作为主函数名 。
C语言里的主函数是什么main()C语言队列的主函数,在c语言中称之为“主函数”,一个c程序有且仅有一个main函数 , 任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略 。
具体形式如下:
main()
{}
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容 。
在{}里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志 。
扩展资料:
函数是一组一起执行一个任务的语句 。每个 C 程序都至少有一个函数 , 即主函数 main() ,所有简单的程序都可以定义其他额外的函数 。
您可以把代码划分到不同的函数中 。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的 。
推荐阅读
- mysql第二次查询比第一次快,mysql首次查询为什么要很久
- js怎么判断360手机浏览器,js如何判断浏览器是否是ie
- 婚纱网站毕业设计代码,婚纱设计毕业论文
- word2007简体转繁体,word 简体转繁体
- java更改代码颜色 java变色
- 鼎捷易飞erp系统ppt,鼎捷易飞erp系统入门教程
- 如何换ppt模板,ppt空白模板
- 视频运营跳槽直播,视频运营跳槽直播是真的吗
- mysql主键冲突怎么办 mysql主键的建立有几种方法