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


    前言

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

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


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

    谱子:

       琴谱:     ​​​​

       代码谱:       


    谱子:

            琴谱:
         ​​​
    在这里插入图片描述

            代码谱:       

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. #include
    7. void Tiansing(){
    8. const int qdo=262;
    9. const int qre=294;
    10. const int qmi=330; //q前缀为低音,1后缀为高音,s前缀为半音阶
    11. const int qfa=349;
    12. const int qso=392;
    13. const int qla=440;
    14. const int qsi=494;
    15. const int d=523;
    16. const int re=578;
    17. const int mi=659;
    18. const int fa=698;
    19. const int so=784;
    20. const int la=880;
    21. const int si=988;
    22. const int do1=1046;
    23. const int re1=1175;
    24. const int mi1=1318;
    25. const int fa1=1480;
    26. const int so1=1568;
    27. const int la1=1760;
    28. const int si1=1976;
    29. const int sqdo=277;
    30. const int sqre=311;
    31. const int sqfa=370;
    32. const int sqso=415;
    33. const int sqla=466;
    34. const int sdo=554;
    35. const int sre=622;
    36. const int sfa=740;
    37. const int sso=831;
    38. const int sla=932;
    39. const int sdol=1046;
    40. const int sre1=1245;
    41. const int sfa1=1480;
    42. const int sso1=1661;
    43. const int sla1=1865;
    44. int pai=400,ban=200;
    45. int ting=128;
    46. Sleep(1000);
    47. Beep(la,ban);
    48. Beep(si,ban);
    49. Sleep(ting);
    50. Beep(do1,pai+ban);
    51. Beep(si,ban);
    52. Sleep(ting);
    53. Beep(do1,pai);
    54. Sleep(ting);
    55. Beep(mi1,pai);
    56. Sleep(ting);
    57. Beep(si,3*pai);
    58. Sleep(ting);
    59. Beep(mi,ban);
    60. Beep(mi,ban);
    61. Beep(la,ban+pai);
    62. Beep(so,ban);
    63. Sleep(ting);
    64. Beep(la,pai);
    65. Sleep(ting);
    66. Beep(do1,pai);
    67. Sleep(ting);
    68. Beep(so,2*pai);
    69. Sleep(ting);
    70. Sleep(pai);
    71. Beep(mi,ban);
    72. Sleep(ting/2);
    73. Beep(mi,ban);
    74. Sleep(ting/2);
    75. Beep(fa,pai+ban);
    76. Beep(mi,ban);
    77. Sleep(ting);
    78. Beep(fa,ban);
    79. Beep(do1,ban+pai);
    80. Sleep(ting);
    81. Beep(mi,2*pai);
    82. Sleep(ting);
    83. Sleep(ban);
    84. Beep(do1,ban);
    85. Sleep(ting/2);
    86. Beep(do1,ban);
    87. Sleep(ting/2);
    88. Beep(do1,ban);
    89. Sleep(ting/2);
    90. Beep(si,ban+pai);
    91. Beep(sfa,ban);
    92. Sleep(ting);
    93. Beep(sfa,pai);
    94. Beep(si,pai);
    95. Sleep(ting);
    96. Beep(si,2*pai);
    97. Sleep(ting);
    98. Sleep(pai);
    99. Beep(la,ban);
    100. Beep(si,ban);
    101. Sleep(ting);
    102. Beep(do1,pai+ban);
    103. Beep(si,ban);
    104. Sleep(ting);
    105. Beep(do1,pai);
    106. Sleep(ting);
    107. Beep(mi1,pai);
    108. Sleep(ting);
    109. Beep(si,2*pai);
    110. Sleep(ting);
    111. Sleep(pai);
    112. Beep(mi,ban);
    113. Sleep(20);
    114. Beep(mi,ban);
    115. Sleep(ting);
    116. Beep(la,pai+ban);
    117. Beep(so,ban);
    118. Sleep(ting);
    119. Beep(la,pai);
    120. Sleep(ting);
    121. Beep(do1,pai);
    122. Sleep(ting);
    123. Beep(so,3*pai);
    124. Sleep(ting+ban);
    125. Beep(mi,ban);
    126. Sleep(ting/2);
    127. Beep(fa,pai);
    128. Sleep(ting);
    129. Beep(do1,ban);
    130. Beep(si,ban);
    131. Sleep(20);
    132. Beep(si,pai);
    133. Sleep(ting);
    134. Beep(do1,pai);
    135. Sleep(ting);
    136. Beep(re1,ban);
    137. Sleep(20);
    138. Beep(re1,ban);
    139. Sleep(20);
    140. Beep(mi1,ban);
    141. Sleep(ting/2);
    142. Beep(do1,pai);
    143. Sleep(ting+pai);
    144. Beep(do1,pai);
    145. Beep(si,ban);
    146. Sleep(ting);
    147. Beep(la,ban);
    148. Sleep(20);
    149. Beep(la,ban);
    150. Sleep(ting);
    151. Beep(si,pai);
    152. Sleep(ting);
    153. Beep(sso,pai);
    154. Sleep(ting);
    155. Beep(sso,2*pai);
    156. Sleep(ting+pai);
    157. Beep(do1,ban);
    158. Beep(re1,ban);
    159. Sleep(ting);
    160. Beep(mi1,pai+ban);
    161. Beep(re1,ban);
    162. Sleep(ting);
    163. Beep(mi1,pai);
    164. Sleep(ting);
    165. Beep(fa1,pai);
    166. Sleep(ting);
    167. Beep(re1,2*pai);
    168. Sleep(pai+ting);
    169. Beep(so,ban);
    170. Sleep(20);
    171. Beep(so,ban);
    172. Sleep(ting);
    173. Beep(do1,ban);
    174. Beep(si,ban);
    175. Sleep(ting);
    176. Beep(do1,pai);
    177. Sleep(ting);
    178. Beep(mi1,pai);
    179. Sleep(ting);
    180. Beep(mi1,2*pai);
    181. Sleep(ting+2*pai);
    182. Beep(la,ban);
    183. Beep(si,ban);
    184. Sleep(ting);
    185. Beep(do1,pai);
    186. Sleep(ting);
    187. Beep(si,pai);
    188. Sleep(ting);
    189. Beep(re1,ban);
    190. Sleep(20);
    191. Beep(re1,ban);
    192. Sleep(ting);
    193. Beep(do1,pai+ban);
    194. Beep(so,ban);
    195. Sleep(20);
    196. Beep(so,pai);
    197. Sleep(pai+ting);
    198. Beep(fa1,pai);
    199. Sleep(ting);
    200. Beep(mi1,pai);
    201. Sleep(ting);
    202. Beep(re1,pai);
    203. Sleep(ting);
    204. Beep(do1,pai);
    205. Sleep(ting);
    206. Beep(mi1,4*pai);
    207. Beep(mi1,pai*2);
    208. Sleep(pai+ting);
    209. Beep(mi1,pai);
    210. Sleep(ting);
    211. Beep(la1,2*pai);
    212. Sleep(ting);
    213. Beep(so1,pai);
    214. Sleep(ting);
    215. Beep(so1,pai);
    216. Sleep(ting);
    217. Beep(mi1,ban);
    218. Sleep(ting/2);
    219. Beep(re1,ban);
    220. Sleep(ting);
    221. Beep(do1,pai);
    222. Sleep(ting+ban);
    223. Beep(do1,ban);
    224. Sleep(ting);
    225. Beep(re1,pai);
    226. Sleep(ting);
    227. Beep(do1,ban);
    228. Beep(re1,ban);
    229. Sleep(20);
    230. Beep(re1,ban);
    231. Sleep(ting);
    232. Beep(so1,pai);
    233. Sleep(ting);
    234. Beep(mi1,2*pai);
    235. Sleep(ting+pai);
    236. Beep(mi,pai);
    237. Sleep(ting);
    238. Beep(la1,2*pai);
    239. Sleep(ting);
    240. Beep(so1,2*pai);
    241. Sleep(ting);
    242. Beep(mi1,ban);
    243. Beep(re1,ban);
    244. Sleep(ting);
    245. Beep(do1,2*pai);
    246. Sleep(ting+ban);
    247. Beep(do1,ban);
    248. Sleep(ting);
    249. Beep(re1,pai);
    250. Sleep(ting);
    251. Beep(do1,ban);
    252. Beep(re1,ban);
    253. Sleep(20);
    254. Beep(re1,ban);
    255. Sleep(ting);
    256. Beep(si,pai);
    257. Sleep(ting);
    258. Beep(la,2*pai);
    259. Sleep(ting);
    260. Beep(la,ban);
    261. Beep(si,ban);
    262. Beep(do1,pai+ban);
    263. Beep(si,ban);
    264. Sleep(ting);
    265. Beep(do1,pai);
    266. Sleep(ting);
    267. Beep(mi1,pai);
    268. Sleep(ting);
    269. Beep(si,3*pai);
    270. Sleep(ting);
    271. Beep(mi,ban);
    272. Beep(mi,ban);
    273. Beep(la,ban+pai);
    274. Beep(so,ban);
    275. Sleep(ting);
    276. Beep(la,pai);
    277. Sleep(ting);
    278. Beep(do1,pai);
    279. Sleep(ting);
    280. Beep(so,2*pai);
    281. Sleep(ting);
    282. Sleep(pai);
    283. Beep(mi,ban);
    284. Sleep(ting/2);
    285. Beep(mi,ban);
    286. Sleep(ting/2);
    287. Beep(fa,pai+ban);
    288. Beep(mi,ban);
    289. Sleep(ting);
    290. Beep(fa,ban);
    291. Beep(do1,ban+pai);
    292. Sleep(ting);
    293. Beep(mi,2*pai);
    294. Sleep(ting);
    295. Sleep(ban);
    296. Beep(do1,ban);
    297. Sleep(ting/2);
    298. Beep(do1,ban);
    299. Sleep(ting/2);
    300. Beep(do1,ban);
    301. Sleep(ting/2);
    302. Beep(si,ban+pai);
    303. Beep(sfa,ban);
    304. Sleep(ting);
    305. Beep(sfa,pai);
    306. Beep(si,pai);
    307. Sleep(ting);
    308. Beep(si,2*pai);
    309. Sleep(ting);
    310. Sleep(pai);
    311. Beep(la,ban);
    312. Beep(si,ban);
    313. Sleep(ting);
    314. Beep(do1,pai+ban);
    315. Beep(si,ban);
    316. Sleep(ting);
    317. Beep(do1,pai);
    318. Sleep(ting);
    319. Beep(mi1,pai);
    320. Sleep(ting);
    321. Beep(si,2*pai);
    322. Sleep(ting);
    323. Sleep(pai);
    324. Beep(mi,ban);
    325. Sleep(20);
    326. Beep(mi,ban);
    327. Sleep(ting);
    328. Beep(la,pai+ban);
    329. Beep(so,ban);
    330. Sleep(ting);
    331. Beep(la,pai);
    332. Sleep(ting);
    333. Beep(do1,pai);
    334. Sleep(ting);
    335. Beep(so,3*pai);
    336. Sleep(ting+ban);
    337. Beep(mi,ban);
    338. Sleep(ting/2);
    339. Beep(fa,pai);
    340. Sleep(ting);
    341. Beep(do1,ban);
    342. Beep(si,ban);
    343. Sleep(20);
    344. Beep(si,pai);
    345. Sleep(ting);
    346. Beep(do1,pai);
    347. Sleep(ting);
    348. Beep(re1,ban);
    349. Sleep(20);
    350. Beep(re1,ban);
    351. Sleep(20);
    352. Beep(mi1,ban);
    353. Sleep(ting/2);
    354. Beep(do1,pai);
    355. Sleep(ting+pai);
    356. Beep(la,4*pai);
    357. Sleep(1000);
    358. }
    359. int mian(){
    360. Tiansing();
    361. return 0;
    362. }

     番外:

    1. #include
    2. int main()
    3. {
    4. int n;
    5. int b=20;
    6. for(n=0;n<21;n++)
    7. {
    8. printf("\a\a");
    9. printf("%d",b-n);
    10. }
    11. getchar();
    12. return 0;
    13. }

    Question:

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

    Reply:

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

    #include 
    
    #include    // 包含windows头文件
    
    int main()
    
    {
    
        int n;
    
        int b=20;
    
        for(n=0;n<21;n++)
    
        {
    
            printf("\a");
    
            printf("%d\n", b - n);
    
            Sleep(500);    // 延迟 500 毫秒
    
        }
    
        getchar();
    
        return 0;
    
    }
    
  • 相关阅读:
    2023年天津中德应用技术大学专升本考试招生计划及报考范围
    linux使用ssh实现免密登陆
    C语言题收录(四)
    详解 Calico 三种模式(与 Fannel 网络对比学习)
    【2022年11月19日提高A组】消圈策略【DP】
    2.python之变量
    ARM驱动学习之基础小知识
    Intelli IDEA java调用DLL库
    centos7安装mysql5.7步骤(图解版)
    16万亿Web3蓝图落地新加坡
  • 原文地址:https://blog.csdn.net/qq_51831335/article/details/125863705