第一章

7,2个或3个正整数的最大数,用带有参数的函数实现。

#include <iostream>

using namespace std;

int main()

{

int max(int a , int b,int c=0);

int a,b,c,i,max;

cout<<"您需要比较几位数的大小?(2-3)位"<<endl;

cin>>i;

cout<<"请输入"<<i<<"个数"<<endl;

if(i==2)

cin>>a>>b;

if(i==3)

cin>>a>>b>>c;

max= MAX(a,b,c);

cout<<"最大值为"<<max<<endl;

return 0;

}

int MAX(int a=0, int b=0, int c=0)

{

int max;

if(a<b)

a=b;

if(a<c)

a=c;

return a;

}

8.输入两个整数,将它们按由大到小的顺序输出。要求使用变量的引用。

#include <iostream>

using namespace std;

int main()

{

void change(int &a, int &b);

int a,b;

cout<<"请输入需要比较的两个数。"<<endl;

cin>>a>>b;

if (a<b)change(a,b);

cout<<"max="<<a<<"min="<<b<<endl;

return 0;

}

void change(int &r1,int r2)

{int temp;

temp= r1;

r1=r2;

r2=temp;

}

9,3个变量按由小到大顺序排序,要求使用变量的引用;

#include <iostream>

using namespace std;

int main()

{

int a=0,b=0,c=0;

void pl(int &a,int &b,int &c);

cout<<"请输入三个数:"<<endl;

cin>>a>>b>>c;

pl(a,b,c);

return 0;

}

void pl(int &a,int &b,int &c)

{

int min=a,max=c;

if(a>c)

{

min=c;

max=a;

}

if(b<min||b==min)

cout<<b<<min<<max;

else

{

    if(b>max||b==max)

cout<<min<<max<<b;

else

cout<<min<<b<<max;

}

}

10,编写一个程序,将两个字符串链接起来,结果取代第一个字符串。要求用string方法

#include <iostream>

#include<string>

using namespace std;

int main()

{

string str1,str2;

cout<<"输入两串字符串:"<<endl;

cin>>str1>>str2;

str1=str1+str2;

cout<<str1<<endl;

return 0;

}

11,输入一个字符串,把其中的字符按逆序输出。如输入light,输出thgil。要求用string方法。

#include <iostream>

#include<string>

using namespace std;

int main()

{

string str;

cout<<"输入一串字符串:"<<endl;

cin>>str;

int size=str.length();

cout<<"您输入了"<<size<<"字符"<<endl;

for(int i=(size-1);i>0||i==0;i--)

cout<<str[i];

cout<<endl;

return 0;

}

12,5个字符串,要求对他们按由小到大的顺序排列,用string方法;

#include <iostream>

#include<string>

#include<ctype.h>

using namespace std;

int main()

{

string str[5];

for(int n=0;n<5;n++)

cin>>str[n];

for(int i=0;i<5;i++)

{

for(int m=i;m<5;m++)

{

if(str[i]>str[m])

{

string min=str[m];

str[m]=str[i];

str[i]=min;

}

}

}

for (int g=0;g<5;g++)

cout<<str[g]<<" ";

return 0;

}

13,编写一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整形,单精度,双精度。用重载函数实现。

#include <iostream>

#include<cstring>

using namespace std;

int main()

{

int pl(int *q,int n);

double pl(double *p,int n);

float pl(float *p,int n);

int a,n;

cout<<"您需要比较什么类型的数:(1)整形(2)单精度(3)双精度"<<endl<<"输入类型前的编号"<<endl;

cin>>a;

cout<<"请输入您需要比较数据的个数:"<<endl;

cin>>n;

cout<<"请输入"<<n<<"个数,用空格分开\n";

if(a==1)

{

int *p= new int[n];

for(int i=0;i<n;i++)

   cin>>p[i];

pl(p,n);

}

if(a==2)

{

    double *p= new double[n];

for(int i=0;i<n;i++)

cin>>p[i];

pl(p,n);

}

if(a==3)

{

float *p= new float[n];

for(int i=0;i<n;i++)

cin>>p[i];

pl(p,n);

}

return 0;

}

int pl(int *q,int n)

{

for(int i=0;i<n;i++)

{

for(int j=i;j<n;j++)

{

if(q[i]>q[j])

{

int x;

x=q[j];

    q[j]=q[i];

q[i]=x;

}

}

}

for (int x=0;x<n;x++)

cout<<q[x]<<" ";

return 0;

}

float pl(float *q,int n)

{

for(int i=0;i<n;i++)

{

for(int j=i;j<n;j++)

{

if(q[i]>q[j])

{

float x;

x=q[j];

    q[j]=q[i];

q[i]=x;

}

}

}

for (int x=0;x<n;x++)

cout<<q[x]<<" ";

return 0;

}

double  pl(double *q,int n)

{

for(int i=0;i<n;i++)

{

for(int j=i;j<n;j++)

{

if(q[i]>q[j])

{

double x;

x=q[j];

    q[j]=q[i];

q[i]=x;

}

}

}

for (int x=0;x<n;x++)

cout<<q[x]<<" ";

return 0;

}

14,13题改用函数模板实现,并与13题程序进行对比分析。

#include <iostream>

#include<cstring>

using namespace std;

template<typename T>

T pl(T *q,int n)

{

for(int i=0;i<n;i++)

{

for(int j=i;j<n;j++)

{

if(q[i]>q[j])

{

T x;

x=q[j];

    q[j]=q[i];

q[i]=x;

}

}

}

for (int x=0;x<n;x++)

cout<<q[x]<<" ";

return 0;

}

int main()

{

int a,n;

cout<<"您需要比较什么类型的数:(1)整形(2)单精度(3)双精度"<<endl<<"输入类型前的编号"<<endl;

cin>>a;

cout<<"请输入您需要比较数据的个数:"<<endl;

cin>>n;

cout<<"请输入"<<n<<"个数,用空格分开\n";

if(a==1)

{

int *p= new int[n];

for(int i=0;i<n;i++)

   cin>>p[i];

pl(p,n);

}

if(a==2)

{

    double *p= new double[n];

for(int i=0;i<n;i++)

cin>>p[i];

pl(p,n);

}

if(a==3)

{

float *p= new float[n];

for(int i=0;i<n;i++)

cin>>p[i];

pl(p,n);

}

return 0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值