在C语言编程中,负数也为真
2014-12-09 21:44
183 查看
表达式的真假是看零和非零,对于负数也是真
如
对于这一句strcmp(A[ j - 1 ].ID , Tmp.ID)
我原本的意思是说如果比较的结果是前面的结构体小于后面的,则条件为假
但是事实是,负数其实也是真的 所以这里的代码应该改成(strcmp(A[ j - 1 ].ID , Tmp.ID))>0
如
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语言编程基础学习字符型数据的ASCII码值为何是负数?
- [转载]编程入门:浅谈C语言的可变参数
- C语言, 值得终身使用的编程工具(一)
- C语言嵌入式系统编程修炼之道——内存操作篇
- C语言高效编程的的四招技巧[转]
- c语言的编程风格
- C语言高效编程的四大绝招
- C语言的编程风格
- C语言高效编程的的四大绝招 [转]
- C语言高效编程的的四大绝招【转贴】
- C语言, 值得终身使用的编程工具(二)―――― “秘密”
- 第18届国际模糊C语言编程大赛开幕
- C语言编程风格(转)
- C语言的编程风格
- 网络socket编程指南(C语言)
- C语言, 值得终身使用的编程工具(三)――――使用建议
- C语言高效编程的几招
- C语言高效编程的的四大绝招
- C语言高效编程的的四招技巧
- c语言的编程风格