#include<stdio.h>

#include<windows.h>

  

#define  K  0//这个频率0,就是不响,作为空拍  

  

//以下的所有表示音符的符号均来自fl  studio  14  fl  keys的标注,或许和一般钢琴的标注不一样    

//只有三个八度的音高频率  ,因为一般人声可以达到的频率大概都会落在这些里面  

#define  C4  523

#define  C#4  554

#define  D4  588

#define  D#4  623

#define  E4  660

#define  F4  700

#define  F#4  742

#define  G4  786

#define  G#4  833

#define  A4  884

#define  A#4  936

#define  B4  992

  

#define  C5  1046

#define  C#5  1108

#define  D5  1176

#define  D#5  1246

#define  E5  1320

#define  F5  1400

#define  F#5  1484

#define  G5  1572

#define  G#5  1666

#define  A5  1768

#define  A#5  1872

#define  B5  1984

  

#define  C6  2092

#define  C#6  2216

#define  D6  2352

#define  D#6  2492

#define  E6  2640

#define  F6  2800

#define  F#6  2968

#define  G6  3144

#define  G#6  3332

#define  A6  3536

#define  A#6  3744

#define  B6  3968

#define  P  125      //折合bpm==120,原bpm105,此处取了个近似值  

  

typedef  struct

{

int  frequency;

int  duration;

}PU;

//以下谱子,正是《社会主义好》的一段  

PU  t[]={B5,1,B5,2,B5,1,D6,2,B5,5,A5,2,G5,1,E5,2,G5,1,A5,2,B5,2,K,5,B5,1,B5,2,B5,1,D6,2,E6,4,D6,3,E5,1

,E5,2,E5,1,G5,2,A5,2,K,5,B5,3,A5,1,G5,3,G5,2,E5,1,D5,3,B5,2,D6,1,B5,2,A5,1,G5,2,A5,1,G5,2,A5,2,B5,3,E5,

3,G5,1,D5,2,K,5,B5,2,D6,1,B5,1,D6,2,E6,3,E6,2,D6,1,E6,5,B5,2,A5,3,B5,1,E6,3,D6,3,B5,3,A5,3,K,1,E6,2,D6,

1,B5,2,A5,1,G5,4,K,3,E6,2,D6,1,B5,2,A5,1,G5,4,};

int  main()

{

        int  i;

        //结构体数组的长度sizeof(t)/sizeof(PU)得到,总结构体数组大小  /  单个结构体大小

        for  (i=0;  i<sizeof(t)/sizeof(PU);  i++)

                Beep(t[i].frequency,t[i].duration*P);

}