C写的一段音乐程序

来源:互联网 发布:伊利2014各季度数据 编辑:程序博客网 时间:2024/06/02 13:07

 

 

/* 标准文档模板 */

 

#include "Stdio.h"

#include "Conio.h"

#include <dos.h>

 

/*各个音阶的震动频率*/

#define C 262

#define D 296

#define E 330

#define F 349

#define G 392

#define A 440

#define B 494

#define C2 523

 

int musical_scale[]={C,D,E,F,G,A,B,C2};  /*各音阶震动频率数组(全局)*/

 

void play_music(int music[]);

 

int main(void)

{

 

 

 

 /*以下是数组表示的乐谱 0代表停顿,1-8代表do re mi fa so la xi do2*/

 int music[]={1,0,2,0,3,0,1,0,5,   /*DO RE MI DO SO*/

          0,0,0,0,0,0,0,

          6,0,6,0,8,0,6,0,5,   /*LA LA DO LA SO*/

          0,0,0,0,0,0,0,

          6,0,6,0,8,           /*LA LA DO*/

          0,0,0,

          5,0,6,0,3,          /*SO LA MI*/

          0,0,0,6,0,5,0,3,0,5,0,3,0,1,0,2,0,3,0,1,  /*LA SO MI SO MI DO RE MI DO*/

          0,-1};

 

 

  play_music(music);

 

  getch();

  return 0;

}

 

void play_music(int music[])

{

int i=0;

  /*循环播放,直到-1结束*/

 while(music[i]!=-1)

 {

   if(music[i]==0) nosound();

   else sound(musical_scale[music[i]-1]);

   delay(100000);

   delay(100000);

   if(music[i]==0) printf(" ");

   else printf("%d",music[i]);

   i++;

 }

  nosound();

}