十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
//定义一个int型数组que,长度为N(常量切大于2).
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了集美免费建站欢迎大家使用!
int que[N];
int rear=0,front=0; //队尾 队头
判断队列已满:
if((front+1)%N==rear%N) //成立则队列已满
判断队列为空
if((rear==front)) //成立则队列空
入队(一般在入队前判断队列是否已满)
//将val入队
que[front++]=val;
front%=N;
出队(一般在出队前判断队列是否为空)
rear=(rear+1)%N;
下一个要出队的元素(一般先判断是否为空)
que[rear];
q.push(m); // queue是C++STL模板库的东西,需要使用push来插入元素,详细信息你可以参考MSDN来了解其使用及内容。
int point[10][2]=0; //改成int point[10][2]={ 0 };可给所有元素赋初值为0
if(point[10][2]=0) //注意point的有效坐标为:point[0][0],point[0][1],....,point[9][0],poing[9][1]
//你用到了point[10][2],已经超出了数组范围,条件判断语句中的等于要用==
//你的意思是否:if ( point[9][0]==0 point[9][1]==0 )
//用判断是否值是0的方法并不好,这样你的点中无法包含x=0,y=0这个点了
建议这个函数进行下述修改:用一个变量pointnumber计数数组中存放数据的个数
#define PTNUMBER 10
int point[PTNUMBER][2]={0},pointnumber=0;
void addline(x,y)
{ int i;
if ( pointnumberPTNUMBER-1 ) //记录点数小于9时可增加点
{ point[pointnumber][0]=x; point[pointnumber][1]=y;
pointnumber++;
}
else //记录点数大于等于9(其实只有等于9的情况会发生),那么开始倒腾数据
{ for ( i=0;iPTNUMBER-1;i++ ) { point[i][0]=point[i+1][0]; point[i][1]=point[i+1][1]; }
point[pointnumber][0]=x; point[pointnumber][1]=y;
}
}
这样的话应该符合你的要求:
#includestdio.h
void add(int queue[],int x);
int Top(int queue[]);
void del(int queue[]);
int end=0;
int main()
{
int n;
scanf("%d",n);//将要入队列n个元素
int queue[1000];
for(int i=1;i=n;i++)//输入n个元素
{
add(queue,i);//将i加入队列
}
//验证加入队列的元素,将队列中的元素按照输入的顺序输出:
for( i=1;i=n;i++)
{
printf("%d ",Top(queue));//Top函数返回队头元素
del(queue);//删除队头元素
}
//验证输出已经出队列后的队列(数组)元素:
printf("\n");
for(i=1;i=n;i++)
printf("%d ",queue[i]);
printf("\n");
return 0;
}
void add(int queue[],int x)
{
queue[++end]=x;
}
int Top(int queue[])
{
return queue[1];//注意,这里的函数始终return queue[1];这里是和将普通数组中的元素输出最大的不同之处。!!!!!!
}
void del(int queue[])
{
for(int i=2;i=end;i++)
{
queue[i-1]=queue[i];
}
queue=0;//将删除后的地方置0
end--;
}