我是一個試圖學習編程的學生,從來沒有做過任何複雜的編碼。最近我的講師給了我一個關於西北角的方法的任務。我跟着在互聯網上找到的代碼,但似乎有這個代碼的一些問題,我不明白,因爲我還是一個初學者。我做了一些閱讀,但我仍然無法弄清楚問題所在,並且很確定編碼存在許多問題。我非常感謝那些願意查看編碼的人。提前致謝。 :)如何編碼這個西北方法
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
using namespace std;
#include <iostream>
#include <fstream>
const int row_max =4;
const int col_max =4;
int i,j;
//create supply_array and require_array
float supply_array[row_max];
float require_array[col_max];
//creating the cost matrix and unit matrix
float cost_matrix[row_max][col_max];
float unit_matrix[row_max][col_max];
//initialize cost_matrix
int main()
{
for(i=0 ; i<=row_max ; i++)
{
for(j=0 ; j<=col_max ; j++)
{
cin >> cost_matrix[i][j];
}
}
//initialize unit_matrix
for(i=0 ; i<=row_max ; i++)
{
for(j=0 ; j<=col_max; j++)
{
unit_matrix[i][j]=0;
}
}
float cost_minimal= 0.0;
float *supply_ptr;
float *require_ptr;
supply_ptr = &supply_array[4];
require_ptr = &require_array[4];
//initialize supply_array
for(i=0 ; i<=row_max ; i++)
{
cin >> supply_array[i];
}
//initialize require_array
for(i=0 ; i<=col_max; i++)
{
cin>>require_array[i];
}
float *matrix_ptr;
matrix_ptr = &cost_matrix[0][0];
int r=0,c=0,x=0,y=0;
while((x<= row_max) &&(y=col_max))
{
if(*require_ptr>*supply_ptr)
{
unit_matrix[x][y]=supply_array[x];
require_array[y]=require_array[y]-unit_matrix[x][y];
supply_array[x]=supply_array[x]-unit_matrix[x][y];
cost_minimal=cost_minimal+unit_matrix[x][y];
x=x+1;
supply_ptr=supply_ptr+1;
matrix_ptr=matrix_ptr+col_max;
continue;
}
if(*require_ptr<*supply_ptr)
{
unit_matrix[x][y]=require_array[y];
require_array[y]=require_array[y]-unit_matrix[x][y];
supply_array[x]=supply_array[x]-unit_matrix[x][y]*cost_matrix[x][y];
y=y+1;
x=x+1;
require_ptr=require_ptr+1;
supply_ptr=supply_ptr+1;
matrix_ptr=matrix_ptr+col_max;
continue;
}
}
//displaying the unit matrix
for(i=0;i<=row_max;i++)
{
for(j=0;j<=col_max;j++)
{
cout<<unit_matrix[i][j];
}
}
//displaying the minimal cost
cout<< "the minimal cost obtained is : "<<cost_minimal;
return 0;
}
你知道什麼可能會更好嗎?讀一本書,瞭解你在做什麼,並從頭開始編碼。然後你會寫出一些好的代碼,你將知道如何調試自己,因爲你會知道它是什麼意思,而不是在互聯網上找到一些東西,並試圖找出它的含義。 – Colleen 2013-05-14 16:40:28
那麼,這段代碼應該做什麼,有什麼問題? – 2013-05-14 16:41:16
瞭解「縮進」 - 它會讓你的代碼更容易閱讀! – 2013-05-14 16:48:34