6-1 计算两数的和与差(10 分)
void sum_diff( float op1, float op2, float *psum, float *pdiff ){
*psum=op1+op2;
*pdiff=op1-op2;
}
6-2 利用指针找最大值(10 分)
void findmax( int *px, int *py, int *pmax ){
if(*px>*py)
*pmax=*px;
else
*pmax=*py;
}
6-3 在数组中查找指定元素(15 分)
int search( int list[], int n, int x ){
int i;
for(i=0;i<n;i++){
if(x==*list++){
break;
}
}
if(i==n){
return -1;
}
return i;
}
6-4 使用函数的选择法排序(25 分)
void sort( int a[], int n ){
int *p=&a[0];
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(*(p+i)>*(p+j)){
int temp=*(p+j);
*(p+j)=*(p+i);
*(p+i)=temp;
}
}
}
}
6-5 判断回文字符串(20 分)
bool palindrome( char *s ){
int len;
len=strlen(s);
int i,j;
for(i=0,j=len-1;i<=j;i++,j--){
if(*(s+i)!=*(s+j)){
break;
}
}
if(i>j){
return true;
}else{
return false;
}
}
6-6 数组循环右移(20 分)
int ArrayShift( int a[], int n, int m ){
for(int i=0;i<m;i++){
int temp=a[n-1];
for(int j=n-1;j>0;j--){
a[j]=a[j-1];
}
a[0]=temp;
}
}