我是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编译文件后
然后我用./code1081.exe运行.exe文件,控制台将输出错误消息“ Segmentation fault(core dumped)”。
谢谢您帮助我找出错误点。非常感谢

最佳答案

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

这行应该是

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

比较应使用==而不是=。难以发现的错误:)

关于c - 通过Cygwin运行exe文件。错误输出:段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17905150/

10-13 08:22