哪位c++高手帮我看一下啊 急死我了

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:22:41
这是我编的一个程序的一部分,因原程序太长了,我又发现就这一段又问题,所以请大家看一下哪里错了。非常谢谢。这个程序对我很重要。我感觉是最后一个while循环有问题,但不知道哪错了。
错误的情况是,运行几十次后会只显示一行数字。而正常的话应该是显示2行数字。
谢谢大家!谢谢!

#include<iostream>
#include<ctime>
using namespace std;

void main()
{
system("color F9");
srand(time(0));

int i,b[13],c[13],d[13],e[13],p[4],q[4];
for(i=0;i<=12;i++)
b[i]=i;
for(i=13;i<=25;i++)
c[i-13]=i;
for(i=26;i<=38;i++)
d[i-26]=i;
for(i=39;i<=51;i++)
e[i-39]=i;
for(i=0;i<=3;i++)
{
p[i]=52;
q[i]=52;
}

int t(0);
while(t<=5)
{
int m,i,ra(0);
m=rand()%52;
for(i=0;i<=2;i++)
{
if(m==p[i]||m==q[i])
{
ra=1;
break;
}
}
if(ra==1)
continue;
else
{
if(t<=2)
p[t]=m;
else
q[t-3]=m;
}<

自己添一些打印语句进去,跟踪数值变化,看看问题在哪里,是否包含了各种条件的判断,有没有标点符号错误。

明明没有问题啊,我怎么原封不动拷过去能得到两行呢,只是最后一个数字不一样,其他的都一样