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

来源:互联网 发布:德川幕府时代 知乎 编辑:程序博客网 时间:2024/06/06 21:41
表达式的真假是看零和非零,对于负数也是真




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}};voidInsertionSort( 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
0 0
原创粉丝点击