assert函数介绍
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
-
#include <assert.h>
-
void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行:
一般用assert判断指针是否为空和一个条件,不要判断多个条件,请注意。
有序区 无序区
#include<iostream>
using namespace std;
int
main()
{
int
a[]={
98
,
76
,
109
,
34
,
67
,
190
,
80
,
12
,
14
,
89
,
1
};
int
k=sizeof(a)/sizeof(a[
0
]);
int
i,j;
for
(i=
1
;i<k;i++)
//循环从第2个元素开始 第一次循环找到待排序元素
{
if
(a[i]<a[i-
1
])//从小到大排序,如果
a[i]>a[i-
1
],说明有序,直接跳过,到下一个元素对比
{
int
temp=a[i]; //记录无序区待排元素值
for
(j=i-
1
;j>=
0
&& a[j]>temp;j--)//第二次循环,从有序区尾部开始往前查找,找到在有序区插入的位置,j=i-1
{
a[j+
1
]=a[j]; //将插入位置后面元素往后移1位
} //若不进入第二个for循环,说明temp值比有序区元素都大,直接插入有序区元素尾部,即a[i]=temp
a[j+
1
]=temp;
//,经过了j--,再j+1,故此处执行a[j+1]=temp,将temp元素插入
}
}
for
(
int
f=
0
;f<k;f++)
{
cout<<a[f]<<
" "
;
}
return
0
;
}