有符号和无符号导致的问题

来源:互联网 发布:燕山大学网络教学平台 编辑:程序博客网 时间:2024/05/01 14:58

前言

写程序的可能会经常碰到一些奇怪的问题,表面上看真是发现不了一点问题。其实可以检查一下是否是类型有符号和无符号导致的问题。有符号的0-1=-1,无符号的0-1可就不是等于1,这个问题大家都知道,一到实际应用起来,往往就忽略了这个差别。下面列举一些自己写程序遇到的这个问题,仅供个人编程的一个警钟。


1. 下面是一个有问题的程序,请有兴趣的同志更正

template <class T>size_t Partition(T R[], size_t low, size_t high){size_t i = low, j = high;T pivot = R[low];while(i < j){for(; i < j &&  pivot < R[j] ; j--);if(i < j){R[i] = R[j];i++;for(; i < j &&  pivot > R[i] ; i++);if(i < j){R[j] = R[i];j--;}}}R[i] = pivot;return  i;}template <class T>void QuickSort(T R[], size_t low, size_t high){size_t i = low, j = high;T pivot = R[low];if(low < high){size_t pivotpos = Partition(R, low, high);QuickSort(R, low, pivotpos-1);QuickSort(R, pivotpos+1, high);}}


原创粉丝点击