C++编程学习笔记 week2

指针

2.1 取子串 指针***

从键盘上输入一个字符串,输出字符串中第一个逗号后面的子串.

#include <iostream>   
using namespace std;   
  
int main()      
{      
     
    char  a[500];      
    char *p; 
    cin.get(a,500);     
    p=a;     
    while(*p!=','&&*p!=0)     
    {     
        p++;     
    } 
   
if(*p==0) cout<<"无子串"<<endl;   
    else    
        cout<<p+1<<endl; //p为指向字符的指针类型.       
  
    return 0;   
}   
  

2.2 数组输出 指针*

使用指针输出数组.

#include <iostream>     
using namespace std;     
     
int main()    
{    
    int a[10],i,*p;   
    for(i=0;i<10;i++)   
    {   
        cin>>a[i];   
    }   
    p=a;   
    cout<<*p<<endl;   
    for(i=1;i<10;i++)   
    {   
        p++; 
         cout<<*p<<endl;      
    }      
} 

2.3 输出大数 指针**

从键盘上输入2个数,输出其中大的数.

#include <iostream>     
using namespace std;     
     
  
int maxValue(int *p,int*q)   
{   
    if(*p>*q)   
            return *p;   
        else  
            return *q;   
}
int main()      
{      
 int *p;      
 int *q;      
 int a;      
 int b;      
 p=&a;      
 q=&b;      
 cin>>a>>b;     
 cout<<maxValue(p,q)<<endl;     
}   

2.4 字符串分割 指针****

从键盘上输入一个字符串,在第一个空格处将字符串分割为2个子串。要求定义名为separationString的函数,函数原型为 char *separationString(char *myString),没有空格时返回NULL。

#include <iostream>   
using namespace std;   
  
char *separationString(char str[])   
{   
    char *p=str;   
    int i;   
    for(i=0;str[i]!='\0';i++)   
    {   
        if(str[i]!=' ')   
        {   
            p++;   
        }   
        if(str[i]==' ')   
        {   
            str[i]='\0';   
            break;   
        }   
    }   
       
    return p+1;   
}
int main()      
{      
     
   char str[100];      
   char *p;      
   cin.get(str,100);    
   p=separationString(str);      
   cout<<str<<endl;      
   cout<<p<<endl;      
}   
  

2.5 平均分II-指针

设有8个评委评分,统计时,去掉1个最高分和1个最低分,其余6个分数的平均分即是最后得分,最后输出这个最后得分。

要求用指针作函数参数的方法,计算最后得分的函数说明:float fun(float*p,int n);

#include<iostream>    
    #include <iomanip.h>     
    using namespace std;     
    float fun(float*p,int n)     
    {     
        int i;     
        float sum=0;     
        for(i=0;i<8;i++)     
        {     
            sum+=*p;     
            p++;     
        }     
        return sum/6.0;     
    }     
    int main()     
    {     
        float a[8],*p,max,min;     
        int i,maxx=0,minn=0;     
        for(i=0;i<8;i++)     
        {     
            cin>>a[i];     
        }     
        max=a[0];     
        min=a[0];     
        for(i=0;i<8;i++)     
        {     
            if(a[i]>max)     
            {     
                max=a[i];     
                maxx=i;     
            }     
            if(a[i]<min)     
            {     
                min=a[i];     
                minn=i;     
            }     
        }     
        a[maxx]=0;     
        a[minn]=0;     
        p=a;  
#include<iostream>  
    #include <iomanip.h>  
    using namespace std;  
    float fun(float*p,int n)  
    {  
        int i;  
        float sum=0;  
        for(i=0;i<8;i++)  
        {  
            sum+=*p;  
            p++;  
        }  
        return sum/6.0;  
    }  
    int main()  
    {  
        float a[8],*p,max,min;  
        int i,maxx=0,minn=0;  
        for(i=0;i<8;i++)  
        {  
            cin>>a[i];  
        }  
        max=a[0];  
        min=a[0];  
        for(i=0;i<8;i++)  
        {  
            if(a[i]>max)  
            {  
                max=a[i];  
                maxx=i;  
            }  
            if(a[i]<min)  
            {  
                min=a[i];  
                minn=i;  
            }  
        }  
        a[maxx]=0;  
        a[minn]=0;  
        p=a;  
cout<<fixed<<setprecision(5)<<fun(p,8)<<endl;   
 return 0;            
}   

2.6 两个数之和 指针*

从键盘上输入2个数,输出这个数的和.

#include <iostream>   
using namespace std;   
int main()   
{   
    int *p,*q;   
    int m,n;   
       
    cin>>m>>n;   
    p=&m;   
    q=&n;
    cout<<*p+*q<<endl;     
}

2.7 数组中的最大数 指针***

要求使用指针方式将10个数从键盘读入到数组a中,并输出其中最大的数.

#include <iostream>   
using namespace std;   
int main()   
{   
    int a[10],i,*q;   
    for(i=0;i<10;i++)   
    {   
        cin>>a[i];   
    }   
    q=a;   
    int max=0;   
    for(i=0;i<10;i++)   
    {   
        if(max<a[i])   
            max=a[i];   
           
           
    }   
    *q=max;
cout<<*q<<endl;      
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值