本集的主要内容有:四个小题儿
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;
}
运行