-2

私はcygwinとCプログラムが初めてです。難しい問題が出てきました

#include <stdio.h>
#define N 10 
int main()
{
    int nPerson[N]={9,11,23,44,2,4,5,6,7,3};
    int nFloor,nMinFloor,nTargetFloor;
    nTargetFloor = -1;

    for(int i=0;i<N;i++){
        nFloor=0;
        for(int j=0;j<i;j++)
            nFloor+=nPerson[j]*(i-j);
        for(int j=i+1;j<N;j++)
            nFloor+=nPerson[j]*(j-i);
        if(nTargetFloor=-1||nMinFloor>nFloor){
            nTargetFloor=i;
            nMinFloor=nFloor;

        }

    }
    printf("%s,%s",nTargetFloor,nMinFloor);
//  return(nTargetFloor,nMinFloor);

}

ファイルに準拠した後gcc -std=c99 -o code1081 code1801.c
、 .exe ファイルを ./code1081.exe で実行すると、コンソールに「Segmentation fault(core dumped)」というエラー メッセージが出力されました。
エラー箇所の特定にご協力いただきありがとうございます。本当にありがとう

4

1 に答える 1

2

if(nTargetFloor=-1||nMinFloor>nFloor){

この行は

if(nTargetFloor == -1||nMinFloor>nFloor){

==の代わりに比較を使用する必要があり=ます。見つけるのが難しいバグ:)

于 2013-07-28T05:13:00.480 に答える