解题思路:

            

            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;
}

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

点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论