这两天才发现程老师建的网站,也想来凑凑热闹,增加点人气!(嘿嘿) 一时没想好留点什么在上面,后看程老师贴个音名音符号频率对照表,于是想起写个小程序给它变的智能点(呵呵 其实也没多大用 就是写着玩的),顺便也练习一下我那荒废已久的C语言(不写不知道啊,发现都忘差不多!)先写这么多吧,我写的程序如果还可以优化的话或是还有什么问题的话 大家多留言 多发贴 让程老师的这里人兵兴盛 呵呵!
#include "stdio.h"
#include "conio.h"
#include "string.h"
struct freq{
char note[4];
int number;
float freq;
};
main()
{
int i,n;
char *inote[3],*comand[2]={"QUT","CLN"};
char *note[88]={"A0","A2","A4","A6","A#0","A#2","A#4","A#6","B0","B2","B4","B6","C1","C3","C5","C7","C#1","C#3","C#5","C#7",
"D1","D3","D5","D7","D#1","D#3","D#5","D#7","E1","E3","E5","E7","F1","F3","F5","F7","F#1","F#3","F#5","F#7",
"G1","G3","G5","G7","G#1","G#3","G#5","G#7","A1","A3","A5","A7","A#1","A#3","A#5","A#7","B1","B3","B5","B7",
"C2","C4","C6","C8","C#2","C#4","C#6","D2","D4","D6","D#2","D#4","D#6","E2","E4","E6","F2","F4","F6","F#2","F#4",
"F#6","G2","G4","G6","G#2","G#4","G#6"};
struct freq lib[88]={
{"A0" ,21, 27.50},{"A2", 45, 110.0},{"A4", 69, 440.0},{"A6" ,93, 1760},
{"A#0", 22, 29.14},{"A#2", 46 ,116.5},{"A#4" ,70, 466.2},{"A#6",94, 1865},
{"B0", 23, 30.87} ,{"B2", 47 ,123.5 },{"B4", 71, 493.9 },{"B6", 95 ,1976},
{"C1" ,24, 32.70} ,{"C3", 48, 130.8} ,{"C5", 72 ,523.2 },{"C7", 96, 2093},
{"C#1",25 ,34.65}, {"C#3",49,138.6},{"C#5",73,554.4 },{"C#7",97,2217},
{"D1", 26 ,36.71}, {"D3" ,50 ,146.8} ,{"D5", 74 ,587.3 },{"D7" ,98 ,2349},
{"D#1", 27, 38.89 },{"D#3", 51, 155.6}, {"D#5", 75, 622.2} ,{"D#7" ,99 ,2489},
{"E1" ,28 ,41.20 },{"E3" ,52 ,164.8} ,{"E5", 76, 659.3 },{"E7" ,100, 2637 },
{"F1" ,29, 43.65 },{"F3", 53, 174.6} ,{"F5", 77 ,698.5}, {"F7" ,101 ,2794} ,
{"F#1" ,30, 46.25 },{"F#3", 54 ,185.0 },{"F#5", 78 ,740.0},{"F#7",102, 2960} ,
{"G1",31,49.00 },{"G3",55 ,196.0 },{"G5",79,784.0 },{"G7",103,3136},
{"G#1" ,32, 51.91},{ "G#3",56,207.6}, {"G#5" ,80 ,830.6} ,{"G#7", 104, 3322},
{"A1",33 ,55.00}, {"A3", 57, 220.0} ,{"A5", 81 ,880.0 },{"A7" ,105 ,3520 },
{"A#1",34, 58.27},{"A#3", 58 ,233.1},{"A#5", 82, 932.3}, {"A#7", 106 ,3729},
{"B1",56,1.74},{"B3" ,59 ,246.9},{"B5", 83 ,987.8},{"B7",107,3951},
{"C2", 36, 65.41}, {"C4", 60, 261.6},{"C6", 84, 1046},{"C8", 108, 4186},
{"C#2" ,37, 69.30}, {"C#4" ,61, 277.2}, {"C#6", 85, 1109},{"D2", 38, 73.42} ,
{"D4", 62, 293.7 },{"D6", 86, 1175 }, {"D#2" ,39 ,77.78}, {"D#4" ,63, 311.1},
{"D#6", 87 ,1245},{"E2", 40 ,82.41} ,{"E4", 64 ,329.6 },{"E6", 88, 1319},
{"F2",41,87.31} ,{"F4",65,349.2 },{"F6",89,1397},{"F#2",42,92.5},
{"F#4", 66,370.0 },{"F#6", 90 ,1480}, {"G2" ,43,98.00} ,{"G4",67, 392.0 },
{"G6",91 ,1568},{"G#2" ,44 ,103.8}, {"G#4", 68 ,415.3} ,{"G#6", 92 ,1661} } ;
printf("*****************************************************\n");
printf("* quit = qut *\n");
printf("* *\n");
printf("* clear= cln *\n");
printf("* *\n");
printf("* by liveliu *\n");
printf("*****************************************************\n");
printf("Please input note:\n");
loop1:
scanf("%s",inote);
strupr(inote);
if(strlen(inote)>3){
printf("input error\n");
goto loop1;
}
else if(strcmp(inote,comand[0])==0){
return 0;
}
else if(strcmp(inote,comand[1])==0){
clrscr();
goto loop1;
}
else{
for(n=0;n<89;n++){
i=strcmp(inote,note[n]);
if(i==0){
printf("note:%s\nnumber:%d\nfreq:%4.2f\n",lib[n].note,lib[n].number,lib[n].freq);
goto loop1;
}
}
}
printf("No this note in lib\n");
goto loop1;
}
注:Windows下用什么
Turbo C 之类的编译一下就行,苹果下在终端下输入$gcc -o xxx xxx.c(如果你安装了xcord集成开发工具的话 就有gcc了),其他类Unix操作系统都同苹果终端下一样(如果安装了gcc)