前些日子晒代码居然翻出了这段,现在就把它贴出来,是半年前写的。 #include<iostream> #include<fstream> using namespace std; 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; }