关于程序运行错误,但是自己测试时输入输出却没问题
有一个程序,自己测试时结果都正确,但是提交完显示有运行错误的问题,自己怎么也看不出来,希望有人能帮我看看,稍微指点一下!题目如下:
有个叫做队列的数据结构,这个队列有4 种操作:
1、将一个数字插入队尾;
2、将一个数字从队头取出并输出这个数字*131 的值;
3、将一个数字从队头取出并输出这个数字*121 的值;
4、询问现在队列有多少个元素。
数据输入
第一行一个n(0<=n<=10000),表示有n 个操作
接下来n 行有n 个操作
在进行操作2、3 的时候保证队列里至少有一个元素
数据输出
输入示例
5
1 1
1 2
2
3
4
输出示例
131
242
0
代码如下:
#include<stdio.h>
int main()
{
int n,i,y,a[10001]={0},m=1,x,c=0,h=0;//h用以计算现存元素,c用来计算全部元素,m用来表示队首元素
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
if(x==1)
{
scanf("%d",&y); //若输入的第一个数为1,则继续输入第二个数,全部元素加一,现存元素加一
c=c+1;
a[c]=y;
h=h+1;
}
if(x==2)
{
if(h==0)continue; //若输入的第一个数为2,判断是否还有现存元素,若无,不执行操作。
else
{
printf("%d\n",a[m]*131); //若有,输出此时的队首元素*131
m=m+1; //将队首的位置向后移动一位
h=h-1; //现存元素减一
}
}
if(x==3)
{
if(h==0)continue;
else
{
printf("%d\n",a[m]*121);
m=m+1;
h=h-1;
}
}
if(x==4)printf("%d\n",h);
}
return 0;
}
感激不尽!!!