实验8.1 指针与数组

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;
    }
}
 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容