我是
靠谱客的博主
自觉豆芽,最近开发中收集的这篇文章主要介绍
字符类题之反射,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
题目描述
我们都知道人眼对自然界中的景物有不同的彩色感觉是因为日光(光源)包含有各种波长的可见光, 同时景物又具有不同的反射(或透射)特性的缘故。例如:西红柿具有反射红色光谱成分的特性, 在太阳光照射下其中的红色成分(吸收了其他光谱成分),所以人眼看到的西红柿是红色的。如果 把西红柿放到蓝光下,照射到西红柿上的蓝光被它吸收了,人眼看到的将是黑色的西红柿。
输入
我们在每组测试数据的第一行有一个字符,表示某个景物能够反射的颜色,第二行输入的是一行 字符串(长度不超过1000),表示一组照射到该景物上的光源(长度不超过26)。问,是否有光源 照射到景物上能够显示出景物的颜色,如果有则将每个光源按行输出,没有则输出“No!”。 有多组测试数据,每组测试数据的输出结果用一行空行分割开来。
输出
样例输入
样例输出
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;
}
|
最后
以上就是自觉豆芽为你收集整理的字符类题之反射的全部内容,希望文章能够帮你解决字符类题之反射所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复