关于用c语言演奏《天空之城》那些事

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 关于用c语言演奏《天空之城》那些事

前言


     最近挖库存挖到了一个刚刚学习编程的时候用C语言写的生日祝福代码,其中用C语言代码用Beep函数控制蜂鸣器根据音调高低的不同演奏了一曲《天空之城》,满满都是怀念的感觉啊!


       或许这没有什么技术难度,但是却是为了学习编程培养了浓厚的兴趣,记得当时我还用C语言实现了炫屏功能、琢磨出如何用C语言打印出十八种爱心和演奏了生日快乐歌等等,hahaha~还是挺好玩的。


谱子:


       琴谱:


   image.png


       代码谱:    

 

#include<iostream>
#include <windows.h>
#include<string>
#include<math.h>
#include<stdlib.h>
#include <cstdio>
void Tiansing(){
  const int qdo=262;
      const int qre=294;
      const int qmi=330;    //q前缀为低音,1后缀为高音,s前缀为半音阶
      const int qfa=349;
      const int qso=392;
      const int qla=440;
      const int qsi=494;
      const int d=523;
      const int re=578;
      const int mi=659;
      const int fa=698;
      const int so=784;
      const int la=880;
      const int si=988;
      const int do1=1046;
      const int re1=1175;
      const int  mi1=1318;
      const int  fa1=1480;
      const int  so1=1568;
      const int  la1=1760;
      const int  si1=1976;
    const int sqdo=277;
      const int  sqre=311;
      const int  sqfa=370;
      const int  sqso=415;
      const int  sqla=466;
      const int  sdo=554;
      const int  sre=622;
      const int  sfa=740;
      const int  sso=831;
      const int  sla=932;
      const int  sdol=1046;
      const int  sre1=1245;
      const int  sfa1=1480;
      const int  sso1=1661;
      const int  sla1=1865;
      int pai=400,ban=200;
    int ting=128;
    Sleep(1000);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,3*pai);
    Sleep(ting);
    Beep(mi,ban);
    Beep(mi,ban);
    Beep(la,ban+pai);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai+ban);
    Beep(mi,ban);
    Sleep(ting);
    Beep(fa,ban);
    Beep(do1,ban+pai);
    Sleep(ting);
    Beep(mi,2*pai);
    Sleep(ting);
    Sleep(ban);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(si,ban+pai);
    Beep(sfa,ban);
    Sleep(ting);
    Beep(sfa,pai);
    Beep(si,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(20);
    Beep(mi,ban);
    Sleep(ting);
    Beep(la,pai+ban);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,3*pai);
    Sleep(ting+ban);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(20);
    Beep(si,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(20);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(do1,pai);
    Sleep(ting+pai);
    Beep(do1,pai);
    Beep(si,ban);
    Sleep(ting);
    Beep(la,ban);
    Sleep(20);
    Beep(la,ban);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(sso,pai);
    Sleep(ting);
    Beep(sso,2*pai);
    Sleep(ting+pai);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(mi1,pai+ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(fa1,pai);
    Sleep(ting);
    Beep(re1,2*pai);
    Sleep(pai+ting);
    Beep(so,ban);
    Sleep(20);
    Beep(so,ban);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(mi1,2*pai);
    Sleep(ting+2*pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(so,ban);
    Sleep(20);
    Beep(so,pai);
    Sleep(pai+ting);
    Beep(fa1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,4*pai);
    Beep(mi1,pai*2);
    Sleep(pai+ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(la1,2*pai);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting+ban);
    Beep(do1,ban);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(mi1,2*pai);
    Sleep(ting+pai);
    Beep(mi,pai);
    Sleep(ting);
    Beep(la1,2*pai);
    Sleep(ting);
    Beep(so1,2*pai);
    Sleep(ting);
    Beep(mi1,ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,2*pai);
    Sleep(ting+ban);
    Beep(do1,ban);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(la,2*pai);
    Sleep(ting);
    Beep(la,ban);
    Beep(si,ban);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,3*pai);
    Sleep(ting);
    Beep(mi,ban);
    Beep(mi,ban);
    Beep(la,ban+pai);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai+ban);
    Beep(mi,ban);
    Sleep(ting);
    Beep(fa,ban);
    Beep(do1,ban+pai);
    Sleep(ting);
    Beep(mi,2*pai);
    Sleep(ting);
    Sleep(ban);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(si,ban+pai);
    Beep(sfa,ban);
    Sleep(ting);
    Beep(sfa,pai);
    Beep(si,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(20);
    Beep(mi,ban);
    Sleep(ting);
    Beep(la,pai+ban);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,3*pai);
    Sleep(ting+ban);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(20);
    Beep(si,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(20);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(do1,pai);
    Sleep(ting+pai);
    Beep(la,4*pai);
    Sleep(1000);
}
int mian(){
  Tiansing();
  return 0;
}
 番外:
#include <stdio.h>
int main()
{
int n;
int b=20;
for(n=0;n<21;n++)
{
printf("\a\a");
printf("%d",b-n);
}
getchar();
return 0;
}

Question:


       书上说\a这个字符可以使电脑发出声音,试了下果然,大约是是1秒钟滴2下,然后我就编了个类似于倒计时的小程序,但发现这根本行不通,数字刷一下出来完了,声音还是一下一下响(估计这个响的声音与输出bel字符是不相符的),而且程序老崩溃。请问这是怎么回事啊?怎么才能做到,响两声后,在输出b的值呢?


Reply:


       你是想声音和数字都慢慢的出来吗?你的程序太短小,在一瞬间就执行完了,其实声音可能响了20下,但是是在一瞬间同时发出来的,你分辨不出来而已。可以包含windows头文件,调用sleep函数延迟发声和打印,就可以出现有节奏的效果。一次发声只需要打印一个'\a'就可以了。


#include <stdio.h>
#include<windows.h>    // 包含windows头文件
int main()
{
    int n;
    int b=20;
    for(n=0;n<21;n++)
    {
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
C语言
【海贼王编程冒险 - C语言海上篇】怎样用C语言实现简单的扫雷游戏?
【海贼王编程冒险 - C语言海上篇】怎样用C语言实现简单的扫雷游戏?
39 1
|
6月前
|
C语言
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
37 1
|
6月前
|
C语言
C语言游戏实战(12):植物大战僵尸(坤版
C语言游戏实战(12):植物大战僵尸(坤版
80 4
|
7月前
|
存储 编译器 程序员
C语言调试大作战:与VS编译器共舞,上演一场“捉虫记”的艺术与科学
C语言调试大作战:与VS编译器共舞,上演一场“捉虫记”的艺术与科学
|
7月前
|
存储 关系型数据库 MySQL
C语言/C++雷霆战机代码(终极版)
C语言/C++雷霆战机代码(终极版)
|
7月前
|
存储 关系型数据库 MySQL
经典C语言/C++项目,雷霆战机
经典C语言/C++项目,雷霆战机
|
程序员 C语言 C++
【C语言航路】第三站:函数(一)
【C语言航路】第三站:函数(一)
69 0
|
算法 编译器 程序员
【C语言航路】第三站:函数(二)
【C语言航路】第三站:函数(二)
64 0
|
机器学习/深度学习 人工智能 算法
C语言百日千题系列之《忘情水题》第一日
C语言百日千题系列之《忘情水题》第一日
C语言百日千题系列之《忘情水题》第一日
|
程序员 C语言
C语言 圣诞树(程序员的浪漫)
C语言 圣诞树(程序员的浪漫)
113 0
C语言 圣诞树(程序员的浪漫)