用指针编写字符串连接函数。

用指针编写字符串连接函数。

时间: 1ms        内存:128M

描述:

 

#include <iostream>
using namespace std;
void scat(char *p1,char *p2)

 
}

int main()
{ char s1[40],s2[20];
   cin>>s1>>s2;
  scat(s1,s2);
  cout<<s1<<endl;
}

输入:

两个字符串

输出:

连接后的字符串

示例输入:

Go home

示例输出:

Gohome

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    char s1[40],s2[40];
    scanf("%s%s",s1,s2);
    printf("%s%s",s1,s2);
    return 0;
}

参考答案(时间最优[0]):


#include <iostream>
using namespace std;
void MergeSort(int p[],int s,int m,int t)
{
   int q[100];      //临时数组q[100]用来存放排好的序列
   int i,j,k;       //i作为左数组起始位置,j作为右数组起始位置,k为临时数组位置
   for (i=s,j=m+1,k=0;k<=t-s;k++)   
  {
   if (i==m+1)      //当i到达左数组的最后时,将右数组余下元素复制到临时数组中
     {
        q[k]=p[j];
        j++;
        continue;
     }
   if (j==t+1)      //当j达到右数组最后时,将左数组剩余元素复制到临时数组中
     {
       q[k]=p[i];
       i++;
       continue;
     }
if (p[i]<p[j])
     {
        q[k]=p[i];   //如果第一个数组当前元素比第二个数组当前元素小,将第一个数组元素复制到临时数组
        i++;
     }
     else
     {
        q[k]=p[j];  //如果第一个数组当前元素比第二个数组当前元素大,将第二个数组元素复制到临时数组
        j++;
     }
}
  for(i=s,j=0;i<=t;i++,j++)//将临时数组的对应各项值赋给数组p[100]
     p[i]=q[j];

}
void Merge(int p[],int s,int t)
{
 if(s<t)
   {
     int m=(s+t)/2;
     Merge(p,s,m);         //递归对左数组进行归并
     Merge(p,m+1,t);       //递归对左数组进行归并
     MergeSort(p,s,m,t);   //合并数组
   }
}
int main()
{
    int n;//n为输入数据的个数
    int p[100];
    cin>>n;
    for(int i=0;i<n;i++)   //输入n个数据
    cin>>p[i];
    Merge(p,0,n-1);        //调用函数进行归并
    for(int i=0;i<n;i++)
    cout<<p[i]<<" ";       //输出排列好的序列
    cout<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注