4点起步C++(第五集)

本集的主要内容有:四个小题儿

1.华氏温度转换为摄氏温度
公式:射手温度=(华氏温度-32)* 5 / 9

#include <iostream>
using namespace std;
int main()
{
    double hh,ss;
    cout<<"请输入华氏温度"<<endl;
    cin>>hh;
    ss=5*(hh-32)/9;
    cout<<"转换摄氏温度为:"<<ss<<endl;
    return 0;
}

输入数字41并运行

在这里插入图片描述


2.某工厂生产汽车,1月份生产2辆,2月份是1月份产量减去半辆,再翻一番;3月份是月产量减去半辆,再翻一番。如此下去。从2月份开始每月生产多少辆汽车?年底时共生产了多少辆汽车?

设a1为一月份生产汽车数,以此类推,那么:
a 1 = 2;
a 2 = 2 ( a 1 - 0.5 ) = 2a 1 - 1
a 3 = 2 ( a 2 - 0.5 ) = 2a 2 - 1

a n=2a n-1 - 1

代码

# include<iostream>
# include<iomanip>
using namespace std;
long product (int);
int main ()
{
    int a;
    cout<<"二月份开始每个月生产量为:"<<endl;
    for(a=2; a<=12; a++)
    cout<<setw(2)<<a<<"月生产量:"<<setw(5)<<product(a)<<endl;
    return 0;
}
long product(int a)
{
    static long f=2;
    f=2*f-1;
    return f;
}

运行
在这里插入图片描述


3.编写程序,通过调用自定义函数stract( )将两个字符串连接起来。

# include<iostream>
using namespace std;
void strcat(char *p,char *q);
int main()
{
    char s1[100],s2[50];
    cout<<"请输入第一个字符串:";
    cin>>s1;
    cout<<"请输入第二个字符串:";
    cin>>s2;
    strcat(s1,s2);
    cout<<"这两个字符串连接后是:"<<s1<<endl;
}
void strcat(char *p,char *q){
    int i=0,j=0;
    while(p[i]!='\0') i++;
    while(q[j]!='\0') p[i++]=q[j++];
    p[i]='\0';

}

运行输入123,321
在这里插入图片描述


4.编写程序,从键盘读入若干个数,输入它们的最大值,最小值和平均值,要求:
1).用一个数组存放各个整数;
2).在主函数中实现数据的输入和输出,用一个sub函数求出它们的最大值,最小值和平均值;
3).分别用传指针和传引用两种方式编写sub()函数
传指针:

# include<iostream>
using namespace std;
void sub(int *p,int n,double *pmax,double *pmin,double *paver);
int main()
{
    int a[10];
    double max,min,aver;
    cout<<"请输入10个数:";
    for(int i=0;i<10;i++) cin>>a[i];
    sub(a,10,&max,&min,&aver);
    cout<<"这10个数的最大值是:"<<max<<endl;
    cout<<"这10个数的最小值是:"<<min<<endl;
    cout<<"这10个数的平均值是:"<<aver<<endl;
    return 0;
}
void sub(int *p,int n,double *pmax,double *pmin,double *paver){
    *pmax=*pmin=*paver=*p;
    p++;
    for(int i=1;i<n;i++,p++){
        if(*pmax<*p)*pmax=*p;
        else if (*pmin>*p)*pmin=*p;
        *paver+=*p;
    }
    *paver/=n;
}

示例

在这里插入图片描述
传引用:

# include<iostream>
using namespace std;
void sub(int *p,int n,double &pmax,double &pmin,double &paver);
int main()
{
    int a[10];
    double max,min,aver;
    cout<<"请输入10个数:";
    for(int i=0;i<10;i++) cin>>a[i];
    sub(a,10,max,min,aver);
    cout<<"这10个数的最大值是:"<<max<<endl;
    cout<<"这10个数的最小值是:"<<min<<endl;
    cout<<"这10个数的平均值是:"<<aver<<endl;
    return 0;
}
void sub(int *p,int n,double &max,double &min,double &aver){
    max=min=aver=*p;
    p++;
    for(int i=1;i<n;i++,p++){
        if(max<*p)max=*p;
        else if (min>*p)min=*p;
        aver+=*p;
    }
    aver/=n;
}

运行

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值