请帮忙看一下文件输入有何问题,急!!!!!!!!!! 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;
} 展开
> 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;
} 展开
2个回答
展开全部
错误信息:Illegal file open (airprog.in). -- 非法 文件 打开。
测定打开语句的返回值是否NULL, NULL 表示打开错。
if ( freopen("airprog.in","r",stdin)==NULL) { 处理open错误 };
----------
freopen 一般用于C。你写的是c++. 你的编译器是否支持 freopen 用于C++,要确定一下。
如果不支持,你要么改C, 要么改用c++的 ifstream.
测定打开语句的返回值是否NULL, NULL 表示打开错。
if ( freopen("airprog.in","r",stdin)==NULL) { 处理open错误 };
----------
freopen 一般用于C。你写的是c++. 你的编译器是否支持 freopen 用于C++,要确定一下。
如果不支持,你要么改C, 要么改用c++的 ifstream.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询