我是cygwin和C programm的新手。我遇到了一个棘手的问题
#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)”。
谢谢你帮我看看错误点。非常感谢
答案 0 :(得分:2)
if(nTargetFloor=-1||nMinFloor>nFloor){
此行应为
if(nTargetFloor == -1||nMinFloor>nFloor){
比较应使用==
代替=
。一个很难找到的bug :))