通过Cygwin运行exe文件。错误输出:分段错误(内核转储)
我是cygwin和C程序的新手。我遇到了一个难题通过Cygwin运行exe文件。错误输出:分段错误(内核转储),c,gcc,compiler-construction,cygwin,C,Gcc,Compiler Construction,Cygwin,我是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=
#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);
}
#包括
#定义n10
int main()
{
int nPerson[N]={9,11,23,44,2,4,5,6,7,3};
内楼层、内楼层、内楼层;
nTargetFloor=-1;
对于(inti=0;iif(nTargetFloor=-1 | | nMinFloor>nFloor){
这条线应该是
if(nTargetFloor==-1 | | nMinFloor>nFloor){
比较应该使用=
而不是=
。一个很难找到的错误:)啊,顺便说一句,我们也是。你还需要做一件事,用-g
选项编译文件,然后gdb code1801
。你找不到错误,因为你没有在,
和之后保留空格;
,而a=b
必须是a=b
@GrijeshChauhan,这是代码格式化的另一个很好的例子重要信息。没有人想/能够读像if(nTargetFloor=-1 | | nMinFloor>nFloor){
…这样难看的废话。是的,你的代码是缩进的,但是表达式不容易读。即使是懒惰的人也可以把所有事情都交给调试器,如果他们想的话:P……。这==
而不是=
帖子每5篇就有1篇