|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有人可以帮忙看一下这两段代码有什么差异吗
在一个OJ平台上1号代码不能通过调试
1号 #include<stdio.h>
struct queue
{
int data[101];
int head,tail;
};
int main()
{
struct queue q;
int i,n;
scanf("%d",&n);
q.head=1;q.tail=1;
for(i=1;i<=n;i++){
scanf("%d",&q.data[q.tail]);
q.tail++;}
while(q.head<q.tail){
printf("%-d ",q.data[q.head]);
q.head++;
q.data[q.tail]=q.data[q.head];
q.tail++;
q.head++;}
return 0;
}
2号 #include<stdio.h>
//定义队列结构体
struct Queue{
int data[200000];
int head;
int tail;
};
int main()
{
int n,i;
//初始化队列
struct Queue q;
q.head=1;
q.tail=1;
scanf("%d",&n);//读入n
for(i=1;i<=n;i++){//接收数据
scanf("%d",&q.data[q.tail]);
q.tail++;
}
//进行解密
while(q.head<q.tail){
//输出队首元素
printf("%d ",q.data[q.head]);
q.head++;//队首出队
//将下一个数移到队尾
q.data[q.tail]=q.data[q.head];
q.tail++;//队尾指针向后移动
//再将队首出队
q.head++;
}
return 0;
}
|
|