为jun木而生


私信TA

用户名:seventh

访问量:13550

签 名:

chongchongchong!!!

等  级
排  名 731
经  验 3719
参赛次数 2
文章发表 21
年  龄 0
在职情况 学生
学  校 湖南警察学院
专  业 计科

  自我简介:

emmmmmmm

TA的其他文章

解题思路:

            

            1.三个数组,c数组用于存放,分步的将a数组和b数组投入到c数组中

            2.首先找到最大的符号是什么,用record记下最大值

            3.再在a数组循环查找并将a数组一个一个的投入c数组中,

                   若找到便从中将b数组中的"(DJTU)"投入c数组中。


注意事项:


            1.因为每次循环运行完后数组都会发生改变, 

                   所以循环开始要清空数据,并对指针重新赋地址。

            2.memset函数:作用是在一段内存块中填充某个给定的值,

                   它是对较大的结构体或数组进行清零操作的一种最快方法。

            3.scanf("%s",a)读取失败的返回值为EOF,当出现EOF时函数跳出。


参考代码:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[10000];
    char b[100]="(DJTU)",c[11000];
    char *a1=a,*b1=b,record;                                 //a1为a数组的指针,b1为b数组的指针
    int i;
    while(1)
    {
	   memset(a,'\0',sizeof(a));
       memset(c,'\0',sizeof(c));                           //每次运行完后将数组清空
       if(scanf("%s",a)==EOF)break;
	   i=0;
	   a1=a;
	   b1=b;
	   record=*a;
	   while(*a1)
	   {
	     if(record<=*a1)record=*a1;
	     a1++;
	   }                                                   //将record记下a数组中最大值 
	   a1=a;
	   while(*a1)
	   {
	      c[i++]=*a1;
	      if(*a1==record)while(*b1){c[i++]=*b1;b1++;}   //将"(DJTU)"投入c数组
	      b1=b;                                         //还原b1指针
	      a1++;
	   }
	   puts(c);
	}
	return 0;
}

感觉代码对你有用的话,留下你的赞赞吧(#^.^#)

 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区