私が書いているいくつかのコードに問題があります。私が疑問に思っているのと同じ質問をすでにしている人をたくさん見つけたので、私はこのサイトをよく利用しています。ここで、私のプログラミングの難問に対する以前のすべての洞察について、ここのコミュニティに感謝したいと思います。(そして、行き過ぎる前に、いいえ、これは「学校のプロジェクト」や「学校の宿題」ではありません。私は単に「巡回セールスマン問題」を解決し、私の C スキルを向上させようとしています。
これは私が立ち往生しているコードの部分です:
void printAndFlip(int arrayone[][20], int citytotal, int arrayCities[])
{
////Finds cost:
int x, y, z;
int totalCost
int singleTrip;
int cheepestTrip;
int nCity = citytotal + 1; //nCity is the number of Cities //Adding one to accomadate going back to the first city
int gCounter;
int gCounterTrue = 1;
int cheepestTrip[20];
int totalCost = 0;
int lCounter;
int i;
int n = citytotal;
////Sets up for a default case to set cheepestTrip:
for(gCounter = 1; gCounter <= nCity; gCounter++)
{
while(gCounterTrue == 1)
{
if(gCounter == arrayCities[gCounter])
{
gCounterTrue = 1;
}
else
{
gCounterTrue = 0;
gCounter = 50; //Stopping the larger for loop with 50 (the nCity can't be larger than 20) so that it will hopefully be faster
}
if(gCounter == nCity)
{
if(arrayCities[1] == arrayCities[nCity])
{
!!!!! cheepestTrip = totalCost;
}
}
}
}
for(x = 1; x < nCity; x++)
{
y = arrayCities[x];
z = arrayCities[x+1];
singleTrip = arrayone[y][z]; //finding individual cost of each trip...will be added to 'totalCost' below
totalCost = singleTrip + totalCost;
}
!!!!!!!! if(totalCost <= cheepestTrip)
{
for(lCounter = 1; lCounter <= nCity; lCounter++)
{
cheepestTrip[lCounter] = arrayCities[lCounter];
}
}
コンパイル エラーがどこにあるかを簡単に示すために、行に感嘆符を付けました。私が間違っているかどうか教えてください。しかし、'arrayone' を printANDFlip に送信するときに、ポインターの配列を配列で渡していますよね? コンパイル エラーがポインターに関連していることはわかっていますが、どこに配置すればよいかわかりません。ありとあらゆる助けをいただければ幸いです。どうもありがとう、アレックス