比如可以輸入asdaasdadfgdfgg(12312312313455)。
那就是:兩只老虎兩只老虎跑得快。
聲調主要是用來發聲的,但是直接用會出問題。
/*文件名:piano.c
*/
# include & ltconio.h & gt
# include & ltstdio.h & gt/*使用無緩沖i/o */
# include & ltctype.h & gt
# include & ltdos.h & gt
#定義g1 198
#定義C 262 /*定義頻率*/
#定義D 294
#定義E 330
#定義F 349
#定義G 392
#定義440
#定義B 494
#定義C2 524
#定義Z 1
#定義定時器模式182 /*將定時器置於正確模式的代碼*/
#定義freq scale 1190000 l/*以赫茲為單位的基本時間頻率*/
#定義時間刻度1230 l/* 0.1秒內的計數次數*/
#define T_MODEPORT 67 /*端口控制定時器模式*/
#定義頻率端口66 /*端口控制音調頻率*/
# define be eport 97/*端口控制揚聲器*/
#定義ON 79 /*信號以打開揚聲器*/
音調(頻率、時間)
int freq,time
{
int高字節,低字節,端口;
長I,計數,除數;
除數= freq scale/freq;/*將頻率換算成計時器單位*/
lowbyte =除數% 256;/*將整數分成*/
hibyte =除數& gt& gt8;/*兩個字節*/
計數=時間刻度*時間;/*將時間轉換為計時器單位*/
outp (T_MODEPORT,timer mode);/*為輸入準備定時器*/
outp (FREQPORT,low byte);/*設置定時器寄存器的低位字節*/
outp (FREQPORT,hi byte);/*設置定時器寄存器的高字節*/
port = InP(be eport);/*保存端口設置*/
outp(be eport,ON);/*打開揚聲器*/
for(I = 0;我& lt數數;i++)
;/*標記時間*/
outp(be eport,port);/*關閉揚聲器,恢復*/
/*原始設置*/
}
主()
{
int鍵,freq,tempo,time
puts("請輸入基本速度:10 = 1秒。");
scanf ("%d ",& amp節奏);
printf ("%d\n\r ",tempo);/*回聲輸入*/
puts(“謝謝。使用鍵行a-k來彈奏音符。\ n \ r ");
puts ("shift鍵使持續時間加倍。答!停止放映。);
while ( (key = getchar())!= '!')
{
time = isupper (key)?2 * tempo:拍子;
key = to lower(key);
開關(鑰匙)
{
格‘a’:聲調(C,時間);
打破;
格' s ':聲調(D,時間);
打破;
格‘d’:聲調(E,時間);
打破;
格‘F’:聲調(F,時間);
打破;
格‘G’:聲調(G,時間);
打破;
格‘h’:聲調(A,時間);
打破;
格‘j’:聲調(B,時間);
打破;
格‘k’:聲調(C2,時間);
打破;
默認:break
}
}
puts("拜拜!\ n \ r ");
}