前言
前两天小病了一下,没有做题,一直在摆烂,今天刷两道题,这道题有点难度,但不大,15分还是比较容易拿下的
L1-035 情人节
以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。
输入格式:
输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点.标志输入的结束,这个符号不算在点赞名单里。
输出格式:
根据点赞情况在一行中输出结论:若存在第2个人A和第14个人B,则输出“A and B are inviting you to dinner…”;若只有A没有B,则输出“A is the only one for you…”;若连A都没有,则输出“Momo… No one is for you …”。
输入样例1:
GaoXZh
Magi
Einst
Quark
LaoLao
FatMouse
ZhaShen
fantacy
latesum
SenSen
QuanQuan
whatever
whenever
Potaty
hahaha
.
输出样例1:
Magi and Potaty are inviting you to dinner...
输入样例2:
LaoLao
FatMouse
whoever
.
输出样例2:
FatMouse is the only one for you...
输入样例3:
LaoLao
.
输出样例3:
Momo... No one is for you ...
OK,以上就是全部题目,很长一片,但是很好懂,就是给出一堆名字,不说多少人,但是要找出第二个和第14个人的名字出来。
这道题的思路是什么,既然不知道多少人,他只要给我一个名字我就输入一个名字,并且把名字储存起来,直到不输入了,我们再去判断怎么做输出,输出相对就简单了,看看一共有多少人就可以了。
代码
#include <stdio.h>
int main()
{
char name[100][11] = {0};//定义一个二维数组存放姓名和序号
int n = 0;
while(gets(name[n]))//输入姓名
{
n++;//序号,存放到数组里面
}
n--;//把‘.’的序号去掉
if(n<2)//判断输入
printf("Momo... No one is for you ...");
else if(n>1&&n<13)
printf("%s is the only one for you...",name[1]);
else if(n>=13)
printf("%s and %s are inviting you to dinner...",name[1],name[13]);
}
以上所有代码均为自己编写,本人水平有限,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论