喵帕斯之短笛
喵帕斯之短笛
莲酱非常喜欢他的短笛,这次莲酱听到了一段很好听的音乐,但是莲酱想知道他的数字简谱怎么写,所以这个任务就交给你来完成了,输入一行字符串,只包含 "do re mi fa so la xi"。(do re mi fa so la xi 分别对应数字 1 2 3 4 5 6 7)
现在给出一个乐谱,请把他转化成莲酱需要的简谱。
Input
多组输入直到EOF。(组数小于100)
每组数据首先输入一个 N 代表接下来输入 N 个音符,接下来输入 N 个音符(只出现 do re mi fa so la xi)并且每个每个音符以空格隔开。(1 <= N <= 100)
Output
每组数据输出一行,为转化后乐谱,只出现 1 2 3 4 5 6 7 并以空格隔开。
Example Input
42 do do so so la la so fa fa mi mi re re do so so fa fa mi mi re so so fa fa mi mi re do do so so la la so fa fa mi mi re re do 26 mi do re mi mi do re mi mi la so mi do so so la mi so so la mi so so la mi re
Example Output
1 1 5 5 6 6 5 4 4 3 3 2 2 1 5 5 4 4 3 3 2 5 5 4 4 3 3 2 1 1 5 5 6 6 5 4 4 3 3 2 2 1 3 1 2 3 3 1 2 3 3 6 5 3 1 5 5 6 3 5 5 6 3 5 5 6 3 2
#include<stdio.h>
#include<string.h>
struct stu
{
char str[100];
}p[100]; // 因为想要 字符串直接 比较 所以 要利用 这个 结构。
int main(void)
{
char a1[3] = "do", b1[3] = "re", c1[3] = "mi", d1[3] = "fa", a2[3] = "so", b2[3] = "la", c2[3] = "xi";
int i, n, a[100];
while(~scanf("%d", &n))
{
memset(a, 0, sizeof(a));
for(i = 0; i <= n - 1; i++)
{
scanf("%s", p[i].str);
if(strcmp(p[i].str, a1) == 0)
{
a[i] = 1;
}
if(strcmp(p[i].str, b1) == 0)
{
a[i] = 2;
}
if(strcmp(p[i].str, c1) == 0)
{
a[i] = 3;
}
if(strcmp(p[i].str, d1) == 0)
{
a[i] = 4;
}
if(strcmp(p[i].str, a2) == 0)
{
a[i] = 5;
}
if(strcmp(p[i].str, b2) == 0)
{
a[i] = 6;
}
if(strcmp(p[i].str, c2) == 0)
{
a[i] = 7;
} // 因为 要变成数字, 而 字符串 不能直接 变成数字(会出现 expression array type 的error) 所以 想到 利用 一维数组 来储存数字。
}
for(i = 0; i <= n - 1; i++)
{
printf("%d%c", a[i], i == n - 1?'\n':' ');
}
}
return 0;
}