pku acm 1006怎么会wrong answer啊
下面是我的程序:#include<iostream>usingnamespacestd;intmain(){intp,e,i,d,a[1000],n=0;while(ci...
下面是我的程序:
#include <iostream>
using namespace std;
int main()
{
int p, e, i, d, a[1000], n=0;
while (cin >> p >> e >> i >> d)
{
if ((p==-1) && (e==-1) && (i==-1) && (d==-1))
{
break;
}
else
{
a[n] = (p*5544 + e*14421 + i*1288)%21252;
if (a[n] == 0)
{
a[n] = 21252;
}
a[n] -= d;
n++;
}
}
for (int j=0; j<n; j++)
{
cout << "Case " << j+1 << ":the next triple peak occurs in "
<< a[j] << " days." << endl;
}
}
我在vc6.0上是可以得到正确输出的,请高手指点 展开
#include <iostream>
using namespace std;
int main()
{
int p, e, i, d, a[1000], n=0;
while (cin >> p >> e >> i >> d)
{
if ((p==-1) && (e==-1) && (i==-1) && (d==-1))
{
break;
}
else
{
a[n] = (p*5544 + e*14421 + i*1288)%21252;
if (a[n] == 0)
{
a[n] = 21252;
}
a[n] -= d;
n++;
}
}
for (int j=0; j<n; j++)
{
cout << "Case " << j+1 << ":the next triple peak occurs in "
<< a[j] << " days." << endl;
}
}
我在vc6.0上是可以得到正确输出的,请高手指点 展开
2个回答
展开全部
你的程序没考虑算出a[n]比d小的情况,
在 a[n] -= d; 的后面加上 if(a[n]<=0)a[n]+=21252;结果就对了
但提交是pe,因为你在“:”后面没加空格,所以输出要这么改:
cout << "Case " << j+1 << ": the next triple peak occurs in "<< a[j] << " days." << endl;
注意大多数题有输出格式时都最好把他的原句粘贴下来,否则就经常差空格,差大小差标点写什么的
在 a[n] -= d; 的后面加上 if(a[n]<=0)a[n]+=21252;结果就对了
但提交是pe,因为你在“:”后面没加空格,所以输出要这么改:
cout << "Case " << j+1 << ": the next triple peak occurs in "<< a[j] << " days." << endl;
注意大多数题有输出格式时都最好把他的原句粘贴下来,否则就经常差空格,差大小差标点写什么的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询