C写的一段音乐程序

本文介绍了一个使用C语言编写的简单音乐播放程序。该程序通过定义不同音阶的频率来模拟音乐播放效果,并通过数组存储乐谱信息实现指定旋律的播放。文章展示了如何利用基本的C语言语法和函数实现声音的输出及延迟。

 

 

/* 标准文档模板 */

 

#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();

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值