时间限制:1000 ms | 内存限制:65535 KB
难度:0
描述
HEIHEI非常喜欢吃花生,他每天都会吃一些花生,心情好的话会吃的比较多,现在已经知道,HEIHEI从周一到周日的心情值递增的,也就是说周一吃的花生最少,周日吃的花生最多。现在给你7个数表示有7堆花生,顺序是打乱的,HEIHEI每天吃的花生数都在这7个数中,现在告诉你今天周几,请你告诉HEIHEI他今天应该吃多少花生。例如花生数有“1 2 5 4 6 7 3”,输入“Monday”,星期一就应该输出1,如果输入“”Thursday”,周四的话应该吃4个,输出4.
输入
第一行有一个数t(1<=t<=100)表示有t组测试数据。
第二行有7个数分别表示这一周内每一天的花生数。
第三行有一个字符串,表示周几(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)。
输出
输出一个数,表示这一天应该吃的花生数。
样例输入
2
1 2 3 4 5 6 7
Friday
1 4 3 5 6 8 10
Sunday
样例输出
5
10
解题思路:本题主要考察常用字符处理函数的strcmp(字符串1,字符串2),其包含在“string.h”库函数中,它的作用有三种:1、字符串1 == 字符串2,返回1。2、字符串1 > 字符串2,返回正整数。3、 字符串1 < 字符串2,返回负整数。这个题主要使用他的第一个特点,即if(!strcmp(str,“Monday”))。在此说一个小知识点,if(!x)等价于if(x==0),if(x)等价于if(x!=0)。
错点:本题除了不能忘记写库函数“string.h”外,还要注意strcmp(str,“Monday”)不能写成strcmp(str,‘Monday’),由于是字符串之间的比较切记不能把双引号“”写成单引号‘’。
#include<stdio.h>
#include<string.h>
main()
{
int t;
scanf("%d",&t);
while(t--)
{
int a[7], temp;
char str[10];
for(int i = 0; i < 7; i++)
scanf("%d", &a[i]);
scanf("%s",str);
for(int j = 0; j < 7; j++)
for(int i = 0; i < 6-j; i++)
if(a[i] > a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
if(!strcmp(str,"Monday"))
printf("%d\n",a[0]);
if(!strcmp(str,"Tuesday"))
printf("%d\n",a[1]);
if(!strcmp(str,"Wednesday"))
printf("%d\n",a[2]);
if(!strcmp(str,"Thursday"))
printf("%d\n",a[3]);
if(!strcmp(str,"Friday"))
printf("%d\n",a[4]);
if(!strcmp(str,"Saturday"))
printf("%d\n",a[5]);
if(!strcmp(str,"Sunday"))
printf("%d\n",a[6]);
}
}