字符类题之反射
2016-06-19 14:01
281 查看
题目描述我们都知道人眼对自然界中的景物有不同的彩色感觉是因为日光(光源)包含有各种波长的可见光,同时景物又具有不同的反射(或透射)特性的缘故。例如:西红柿具有反射红色光谱成分的特性,在太阳光照射下其中的红色成分(吸收了其他光谱成分),所以人眼看到的西红柿是红色的。如果把西红柿放到蓝光下,照射到西红柿上的蓝光被它吸收了,人眼看到的将是黑色的西红柿。输入我们在每组测试数据的第一行有一个字符,表示某个景物能够反射的颜色,第二行输入的是一行字符串(长度不超过1000),表示一组照射到该景物上的光源(长度不超过26)。问,是否有光源照射到景物上能够显示出景物的颜色,如果有则将每个光源按行输出,没有则输出“No!”。有多组测试数据,每组测试数据的输出结果用一行空行分割开来。输出样例输入r ogr bg abc r e oga bw样例输出 ogr r 分析: 查找有空格字符串中,有某字符的子串,并输出该字串! AC代码如下: #include "stdio.h"#include "string.h"int main(int argc, char* argv[]){char a[1100],b[50];char c;int i,j,k,l,ss=0;int flag;//标记是否有该字符int ff;//标记是否已输出该字符,作用是为了解决一种特例, r “asdr sdr r sd”while(scanf("%c",&c)!=EOF){getchar();gets(a);ff=0;if (ss++) //按要求输出换行{printf("\n");}for (i=0;i<(int)strlen(a);i++){if (i==0){k=0;flag=0;l=i;while(a[l]!=' '&&l<(int)strlen(a)){if(a[l]==c) flag=1;b[k++]=a[l];l++;}if (flag){ff=1;for (j=0;j<k;j++){printf("%c",b[j]);}printf("\n");}}else{k=0;flag=0;l=i;if (a[l]==' '){l++;while(a[l]!=' '&&l<(int)strlen(a)){if(a[l]==c) flag=1;b[k++]=a[l];l++;}if (flag){ff=1;for (j=0;j<k;j++){printf("%c",b[j]);}printf("\n");}}}}if (flag==0&&ff==0){printf("No!\n");}}return 0;} |
相关文章推荐
- C# List<T>排序总结
- Mybatis框架学习——快速入门
- webrtc直播音频调节失效(小米等部分机型)
- 配置Memcache服务器并实现主从复制功能(repcached)(转)
- 分页存储 -- 地址变换机构
- 项目完成总结
- 第十六周 6.13 --- 6.19
- Android开发常用代码片段
- Struts2中Action访问Servlet API
- Android 沉浸状态栏
- 【转】HTTP协议详解
- android jdbc 远程数据库
- 一篇不错的讲解Java异常的文章
- 二丶一步一步的来学习.net框架,什么是CLR?
- Cookie/Session机制详解
- 什么是java虚拟机?
- python 主机宝
- [bzoj3553] [Shoi2014]三叉神经树
- JAVA022--XML
- git