我是靠谱客的博主 自觉豆芽,这篇文章主要介绍字符类题之反射,现在分享给大家,希望可以做个参考。

题目描述


我们都知道人眼对自然界中的景物有不同的彩色感觉是因为日光(光源)包含有各种波长的可见光,
同时景物又具有不同的反射(或透射)特性的缘故。例如:西红柿具有反射红色光谱成分的特性,
在太阳光照射下其中的红色成分(吸收了其他光谱成分),所以人眼看到的西红柿是红色的。如果
把西红柿放到蓝光下,照射到西红柿上的蓝光被它吸收了,人眼看到的将是黑色的西红柿。


输入

我们在每组测试数据的第一行有一个字符,表示某个景物能够反射的颜色,第二行输入的是一行
字符串(长度不超过1000),表示一组照射到该景物上的光源(长度不超过26)。问,是否有光源
照射到景物上能够显示出景物的颜色,如果有则将每个光源按行输出,没有则输出“No!”。
有多组测试数据,每组测试数据的输出结果用一行空行分割开来。


输出


样例输入

复制代码
1
2
3
4
r ogr bg abc r e oga bw

样例输出

复制代码
1
2
ogr r
复制代码
1
2
复制代码
1
分析:
复制代码
1
查找有空格字符串中,有某字符的子串,并输出该字串!
复制代码
1
2
复制代码
1
AC代码如下:
复制代码
1
2
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
复制代码
#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; 
}


复制代码
1
2
复制代码
1

最后

以上就是自觉豆芽最近收集整理的关于字符类题之反射的全部内容,更多相关字符类题之反射内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(107)

评论列表共有 0 条评论

立即
投稿
返回
顶部