请帮忙看一下文件输入有何问题,急!!!!!!!!!! 15

错误是这样的:(usacoArithmeticProgressions)>Run1:Executionerror:Yourprogramhadthisruntimeerr... 错误是这样的:(usaco Arithmetic Progressions)
> Run 1: Execution error: Your program had this runtime error:

Illegal file open (airprog.in). The program ran for 0.000 CPU
seconds before the error. It used 14048 KB of memory.
以下是我的程序:
/*
PROB:ariprog
LANG:C++
*/
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m;
int cnt;
bool f[10000000];
bool hash[1000000];
struct node
{
int a;
int b;
}ans[10005];
bool fff(node x,node y)
{
if(x.b>y.b)return false;
if(x.b<y.b)return true;
if(x.a>y.b)return false;
return true;
}
int main()
{
freopen("airprog.in","r",stdin);
freopen("airprog.out","w",stdout);
cin>>n>>m;
for(int i=0;i<=m;i++)
{
for(int j=0;j<=m;j++)
f[i*i+j*j]=true;
}
int l=n;
int i=0;
while(i+l<=2*m*m)
{
if(f[i]){
int j=1;
while(i+j*(l-1)<=2*m*m)
{
bool ff=true;
for(int k=1;k<l;k++)
{
if(!f[i+k*j]){ff=false;break;}
}
if(ff && !hash[i*1000+j]){
ans[cnt++].a=i;
ans[cnt-1].b=j;
hash[i*1000+j]=true;
}
j++;
}}
i++;
}
sort(ans,ans+cnt,fff);
for(int i=0;i<cnt;i++)
cout<<ans[i].a<<" "<<ans[i].b<<endl;
return 0;
}
展开
 我来答
金色潜鸟
2013-01-27 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5627万
展开全部
错误信息:Illegal file open (airprog.in). -- 非法 文件 打开。
测定打开语句的返回值是否NULL, NULL 表示打开错。
if ( freopen("airprog.in","r",stdin)==NULL) { 处理open错误 };
----------
freopen 一般用于C。你写的是c++. 你的编译器是否支持 freopen 用于C++,要确定一下。
如果不支持,你要么改C, 要么改用c++的 ifstream.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千江月success
2013-01-26 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:907万
展开全部
我这边程序运行没有问题,但是好像你的程序逻辑有点问题,airprog.out文件中一个结果也没有,调试发现cnt始终为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式