您的位置:首页 > 编程语言 > C语言/C++

在C语言编程中,负数也为真

2014-12-09 21:44 183 查看
表达式的真假是看零和非零,对于负数也是真


typedef struct StudentInfo ElementType;

struct StudentInfo
{
char ID[11];
char *name;
double score;
}StuInfo[12]=
{
{"0800301105","JACK",95},
{"0800201505","LUN",85},
{"0400820115","MARY",75.05},
{"0400850122","KATE",78.9},
{"0500201011","LILI",88},
{"0800401105","JACK",96},
{"0600830105","JAN",98.4},
{"0952520012","SAM",75},
{"9721000045","OSCAR",64},
{"0700301105","JACK",97},
{"0458003312","ZOE",68.9},
{"0400830211","BOBI",87.6}
};

void
InsertionSort( ElementType A[ ], int N )    //该函数是插入排序来比较两个结构体
{
int j, P,t;
ElementType Tmp;

for( P = 1; P < N; P++ )
{
Tmp = A[ P ];
for( j = P; (j > 0) && strcmp(A[ j - 1 ].ID , Tmp.ID); j-- )
A[ j ] = A[ j - 1 ];
A[ j ] = Tmp;

}

}


对于这一句strcmp(A[ j - 1 ].ID , Tmp.ID)

我原本的意思是说如果比较的结果是前面的结构体小于后面的,则条件为假

但是事实是,负数其实也是真的   所以这里的代码应该改成(strcmp(A[ j - 1 ].ID , Tmp.ID))>0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言