树脂螺丝拧不花


私信TA

用户名:uq_84477738459

访问量:622

签 名:

等  级
排  名 3412
经  验 1938
参赛次数 0
文章发表 2
年  龄 20
在职情况 学生
学  校 上海海洋大学
专  业 空间信息与数字技术

  自我简介:

TA的其他文章

方法一:     链表

解题思路:    链表的建立  +   两个链表的连接

注意事项:

参考代码:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#define N 1000

struct link{

    char c;

    struct link *next;

};

typedef struct link link;

int main()

{

char s[N];

char s1[N];

    link *head ,*p,*q;

    head=NULL;

    int n;

    int sum=0;

    char m,c;

    scanf("%s",s);

    getchar();

    scanf("%s",s1);

    scanf("%d",&n);

    for(int i=0;s[i]!='\0';i++)//链表的建立

    {

        p = (link*)malloc(sizeof(link));

        p->c = s[i];

        p->next = NULL;

        if(head==NULL)

        {

            head=p;

        }

        else

        q->next = p;

        q=p;

    }

    link *top = head;

    while(top)//找到要连接的位置

    {

    sum++;

        if(sum==n-1)

        break;

        top=top->next;

    }

    link *head1=NULL;

   for(int i=0;s1[i]!='\0';i++)//对要插入的链表进行创建

    {

        p = (link*)malloc(sizeof(link));

        p->c = s1[i];

        p->next = NULL;

        if(head1==NULL)

        {

            head1=p;

        }

        else

        q->next = p;

        q=p;

    }

    if(n==1)//很重要的一点,如果要连接的链表要放在开头,则要要把第一个建立的链表连接到第二个链表的尾部

    {

    p->next=head;

    head=head1;

}

else

{

    p->next = top->next;//链表的连接

    top->next = head1;

}

    while(head!=NULL)//打印链表

    {

    printf("%c",head->c);

    head = head->next;

}

}

方法二:数组

参考的代码:

#include<stdio.h>

#include<string.h>

#define N 1000

int main()

{

char s[N],s1[N];

int num;

scanf("%s",s);

getchar();

scanf("%s",s1);

scanf("%d",&num);

for(int i=0;s[i]!='\0';i++)

{

if(i==num-1)//找到要插入的位置,将剩余数组向后移动strlen(第二个数组)

{

int len =strlen(s1);

for(int k=len+strlen(s)-1;k>=i;k--)

{

s[k+len]=s[k];

}

int j=0;

int m=i;

for(;m<len+i;m++)

{

s[m]=s1[j];

j++;

}

}

}

puts(s);

}


 

0.0分

1 人评分

  评论区

  • «
  • »