Manchester


私信TA

用户名:wenyajie

访问量:333908

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 65860
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
1:输入一个整数n,开辟两次n个字符空间;

2:输入n个字符;(这里默认没有空格等字符)

3:输入一个整数m;

4:求复制的字符个数;

5:把从m开始的字符复制到另一字符串;

6:输出;

代码一(字符没有空格,正确)

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main()
{
    int n, m, t;
    scanf( "%d", &n );

    char *a, *b;
    a    = (char *) malloc( n * sizeof(char) );
    b    = (char *) malloc( n * sizeof(char) );
    scanf( "%s", a );
    scanf( "%d", &m );
    t = n - m + 1;


    for ( int i = 0; i < t; i++ )
    {
        b[i] = a[m - 1]; m++;
    }

    printf( "%s", b );
    return(0);
}

代码二:(字符有空格)

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main()
{
    int n, m, t;
    scanf( "%d", &n );
    getchar();
    char *a, *b;
    a    = (char *) malloc( n * sizeof(char) );
    b    = (char *) malloc( n * sizeof(char) );
    gets( a );
    scanf( "%d", &m );
    t = n - m + 1;


    for ( int i = 0; i < t; i++ )
    {
        b[i] = a[m - 1]; m++;
    }

    puts( b );
    return(0);
}

别忘点赞哦-.-

 

0.0分

58 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

#include<stdio.h>
#include<stdlib.h> 
int main(){
	int n,m,t;
	scanf("%d",&n);
	char *a,*b;
	a=(char *)malloc(n*sizeof(char));
	b=(char *)malloc(n*sizeof(char));
	gets(a);
//	scanf("%s",a);
	scanf("%d",&m);
	t=n-m+1;
	for(int i=0;i<t;i++)
	{
		b[i]=a[m-1];
		m++;
	}
	puts(b);
	
}
2021-09-17 21:40:50
#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
	char a[N],b[N];
	int i,n,m,j=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%c",a+i);
	scanf("%d",&m);
	for(i=m;i<n;i++)
	b[j++]=a[i];
	b[j]='\0';
	puts(b);
	return 0;
}
不知道哪里错了,求解??
2021-03-02 10:11:53
#include<stdio.h>
#include<string.h>

void fun(char a[],int n,int m)
{
	int i,j;
	
	for(i=0;a[i]!='\0';i++)
	{
		if(i>=m-1)
		{
			a[j++]=a[i];
		}
	}
	a[j]='\0';
}

int main(void)
{
	char a[100];
	int m,n;
	
	scanf("%d",&n);
	
	getchar();
	
	gets(a);
	
	scanf("%d",&m);
		
	fun(a,n,m);
	
	puts(a);
	
	return 0;
}
2021-02-01 13:31:51
#include <stdio.h>
int main()
{
	int m,n;
	char a[100];
	scanf("%d",&m);
	getchar();
	for(int i=0;i<m;i++)
		scanf("%c",&a[i]);
	scanf("%d",&n);
	for(int i=n-1;i<m;i++)
		printf("%c",a[i]);
	return 0;
}

简单易懂,点赞吧
2020-03-21 21:29:53
#include<stdio.h>

void f(char ch[],int i,int k);

int main()
{
    int i=0,j,k;
    scanf("%d",&i);
    char ch[i];
    for(j=0;j<i;j++)
    {
        scanf("%s",&ch[j]);
        
    }
    scanf("%d",&k);
    f(ch,i,k);
    return 0;
}

void f(char ch[],int i,int k)
{
    char c[k];
    for(int j=0;j<i;j++)
    {
        c[j]=ch[k+j-1];
    }
    for(int n=0;n<=i-k;n++)
    {
        printf("%c",c[n]);
    }
    return;
}
运行错误,有大佬看看哪问题吗
2020-03-02 10:59:38
#include<stdio.h>

int main(void)
{
	char a[128];
	int n,m;
	scanf("%d",&n);
	fflush(stdin);
	gets(a);
	scanf("%d",&m);
	for(int i=0;i<n-m+1;i++)
		printf("%c",a[i+n-m-1]);
	return 0;
}
我这个是哪里有问题吗?
2020-02-13 16:10:53
#include<stdio.h>

int main(void)
{
	char a[128];
	int n,m;
	scanf("%d",&n);
	fflush(stdin);
	gets(a);
	scanf("%d",&m);
	for(int i=0;i<n-m+1;i++)
		printf("%c",a[i+n-m-1]);
	return 0;
}
我这个是哪里有问题吗?
2020-02-13 16:10:31
求问大家为什么我换了一个输入的方式,提交结果就答案错误50%呢
#include<stdio.h>
int main(){
	int n;
	scanf("%d\n",&n); 
	char str[n],str1[n];
	gets(str);	
	
	int m,i;
	scanf("%d",&m);
	
	if(m<=n){
		for(i=0;i<(n-m+1);i++){
			str1[i]=str[m-1+i];
		}	
		printf("%s",str1);
	}
	return 0;
}
2020-01-14 11:53:06