前些日子晒代码居然翻出了这段,现在就把它贴出来,是半年前写的。
int mincount(int m,int n,int a[],int b[])//m表示加油站数,N表示加一次油最大可跑多远,a存储加油站之间的距离
{
ofstream out("output.txt");
for(int j=0;j<m;j++)
b[j]=0;//将i站加油状况置为0意为没有加油
//int k=0;
//while(k<m)
//{
int sum=0;
int temp=n;
for(int i=0;i<=m;i++)
{
if(a[i]<temp)
{
temp=temp-a[i];//第N减去I站路程差
}
else
{
b[--i]=1;
temp=n;
//i=i-1;
//break;
}
}
for(int j=0;j<m;j++)
{
if(b[j]==1)
out<<"第"<<j+1<<"个加油站要加油!"<<endl;
sum+=b[j];
}
// ofstream fout("G://新建文件夹/foutput.txt");
out<<"需要加油的站数为:"<<sum;
return sum;
//cout<<sum<<endl;
//k++;
//}
}
int main()
{
int m, n;
//int sum=0;
ifstream fin("input.txt");//注意在工程里面文件一定要建在相应的文件夹下不要放在Debug文件下
ofstream out("output.txt");//输出文件会自动建立
if(!fin)
{
cout<<"the file can not open!"<<endl;
return 1;
}
fin>>m>>n;
//cin>>m>>n;
int *a=new int[m+1];//小心分配为int()这样的不要把()当成[].
for(int i=0;i<=m;i++)
{
fin>>a[i];
out<<a[i]<<" ";
}
cout<<endl;
//cin>>a[i];
int *b=new int[m];
/*for(int i=0;i<m;i++)
{
b[i]=0;
}*/
mincount(m,n,a,b);
/*for(int j=0;j<=m+1;j++)
{
sum+=b[j];
}*/
// cout<<sum<<endl;
return 1;
}