第九章-2-指针练习

/*
 * @Issue: 一个序列,编写程序,从第n个数开始的m个数倒序输出,例如 n=2,m=3  序列:1 2 3 4 5 6
 *                                                                倒序后:1 4 3 2 5 6
 * @Author: 一届书生
 * @LastEditTime : 2020-02-05 10:54:18
 */
#include<iostream>
using namespace std;

//迷迷糊糊最后调试出来了

void reversal(int *p,int n,int m){
    int t;
    for(int i=n;i<(2*n+m)/2;i++){
        t=*(p+i-1);
        *(p+i-1)=*(p+n+m+n-i-2);
        *(p+n+m+n-i-2)=t;
    }
}

int main(){
    int a[]={1,2,3,4,5,6,7,8,9};
    int n,m;
    cout<<"请输入n和m:"<<endl;
    cin>>n>>m;
    
    reversal(a,n,m);

    for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)
    cout<<a[i];
    return 0;
}

  

/*
 * @Issue: 统计输入的命令行中第二个参数所包含的英文字符个数
 *          我用vscode运行好像不对,代码来源于课本,
 * @Author: 一届书生
 * @LastEditTime : 2020-02-05 11:00:31
 */
#include<iostream>
#include<ctype.h>
using namespace std;

int main(int argc,char *argv[]){
    char *str;
    int num=0;
    if(argc==2){
        str=argv[1];
        while(*str)
        if(isalpha(*str++))
        num++;
        cout<<endl<<"The count num is:"<<num<<endl;
    }
    return 0;
}

  

/*
 * @Issue: 通过指针数组p和一维数组a构成3*2矩阵,并按行输出后按列输出
 * @Author: 一届书生
 * @LastEditTime : 2020-02-05 11:10:53
 */

#include<iostream>
using namespace std;

int main(){
    int a[]={1,2,3,4,5,6},*p[3];
    for(int i=0;i<3;i++)p[i]=&a[i*2];
    for(int i=0;i<3;i++){
        for(int j=0;j<2;j++)
        cout<<p[i][j]<<" ";
        cout<<endl;
    }
    cout<<endl;
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++)
        cout<<p[j][i]<<" ";
        cout<<endl;
    }
    cout<<endl;
    cout<<p[1][3]<<endl;
    return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/52dxer/p/12262850.html