永发信息网

这段程序哪里错了

答案:2  悬赏:30  手机版
解决时间 2021-04-25 14:26
#include<stdio.h>
#include<dos.h>
void pause(int);
void soundl(int int);
void main(void)
{
 int i,freq,speed=5;
 int time=4+speed;
 char *qm="iddgwwwqqgfff dddfghhhggg ddgwwwqqgfff\
 ddffhjqqqq wpggjhgddgqq hhqwwqjjjggg\
 ddgwwwqqqgfff ddffhjqqqqqq"
 while(*qm++!='\0')
 {
  i=1;
  switch(*qn)
  {
  case'k':
   tine=1*speed;i=0;break;
  case 'i':
    time=6*speed;i=0;break;
  case'o':
     time=10*speed;i=0;break;
  case'p':
      pause(time);i=0;break;
  case'a':
       freq=523;break;
       case's':
        freq=587;break;
        case'd':
         freq=659;break;
         case'f':
          freq=698;break;
          case'g':
           freq=784;break;
           case'h';
              freq=880;break;
                                               case'j':
                  freq=988;break;
                  case'z':
                        freq=262;break;
               case 'x':
                freq=296;break;
               case'c':
                 freq=330;break;
               case'c':
                 freq=330;break;
               case'v':
                 freq=349;break;
               case'b':
                 freq=392;break;
               case'n':
                 freq=440;break;
               case'm':
                 freq=494;break;
               case'q':
                 freq=1047;break;
               case'w':
                 freq=1175;break;
               case'e':
                 freq=1319;break;
               case'r':
                 freq=1397;break;
               case't':
                 freq=2568;break;
               case'y':
                 freq=1760;break;
               case'u':
                 freq=1976;break;
               default:
                  i=0;break;
  }
  if(i)
   sounl(freq,time);
 }
}
void soundl(int freq int time)
{
 union
 {
  long divison;
   unsigned char c[2];
 } ;count
 unsigned char ch
 count.divisor=1193280/freq;
  outp(67,182);
  outp(66,count.c[0]);
  outp(66,count.c[1]);
  ch=inp(97);
  outp(97,ch(3));
  pause(time);
  outp(97,ch);
}
void pause(int time)
{
 int t1,t2;
 union REGS in out;
 in.h.ar=OX2c;
 int86(OX2c,&in,&out);
 t1=t2=100*out,h.dh+out.h.dl;
 while(t2-t1<time)
 {
  int86(OX21,&in,&out);
  t2=100*out.h.oh+out.h.dl;
  if(t2<t1)t2+=6000
 }
}
最佳答案

第一 "void soundl(int int);“  int 中间少逗号。应为void soundl(int, int);


第二 "char *qm="iddgwwwqqgfff dddfghhhggg ddgwwwqqgfff\
 ddffhjqqqq wpggjhgddgqq hhqwwqjjjggg\
 ddgwwwqqqgfff ddffhjqqqqqq""  少语句结束的;


第三 switch(*qn)变量敲错了,应为switch(*qm)


第四 "case'k':
   tine=1*speed;i=0;break;" 中tine敲错了,应为Time


第五  case'h';中的分号应为冒号


第六  case'c':
    freq=330;break;重复了,要删除一个


第七 void soundl(int freq int time)两个形参之间加逗号


给你一个完整程序自己看吧。怎么照抄都能抄出这么多错来。


#include<stdio.h>
#include<dos.h>
void pause(int);
void soundl(int, int);
void main(void)
{
 int i,freq,speed=5;
 int time=4+speed;
 char *qm="iddgwwwqqgfff dddfghhhggg ddgwwwqqgfff\ ddffhjqqqq wpggjhgddgqq hhqwwqjjjggg\ ddgwwwqqqgfff ddffhjqqqqqq";
 while(*qm++!='\0')
 {
  i=1;
  switch(*qm)
  {
  case'k':
   time=1*speed;i=0;break;
  case 'i':
    time=6*speed;i=0;break;
  case'o':
    time=10*speed;i=0;break;
  case'p':
    pause(time);i=0;break;
  case'a':
    freq=523;break;
    case's':
    freq=587;break;
    case'd':
    freq=659;break;
    case'f':
    freq=698;break;
    case'g':
    freq=784;break;
    case'h':
    freq=880;break;
    case'j':
    freq=988;break;
    case'z':
    freq=262;break;
    case 'x':
    freq=296;break;
    case'c':
    freq=330;break;
    case'v':
    freq=349;break;
    case'b':
    freq=392;break;
    case'n':
    freq=440;break;
    case'm':
    freq=494;break;
    case'q':
    freq=1047;break;
    case'w':
    freq=1175;break;
    case'e':
    freq=1319;break;
    case'r':
    freq=1397;break;
    case't':
    freq=2568;break;
    case'y':
    freq=1760;break;
    case'u':
    freq=1976;break;
    default:
    i=0;break;
  }
  if(i)
   sounl(freq,time);
 }
}
void sound1(int freq,int time)
{
    union{
    long divisor;
    unsigned char c[2];
    }count;
    unsigned char ch;
    count.divisor=1193280/freq;
    outp(67,182);
    outp(66,count.c[0]);
    outp(66,count.c[1]);
    ch=inp(97);
    outp(97,ch|3);
    pause(time);
    outp(97,ch);
}
void pause(int time)
{
    int t1,t2;
    union REGS in,out;
    in.h.ah=0x2c;
    int86(0x21,&in,&out);


    t1=t2=100*out.h.dh+out.h.dl;


    while(t2-t1<time)
    {
    int86(0x21,&in,&out);
    t2=100*out.h.dh+out.h.dl;
    if (t2<t1)t2+=6000; 
    }
}

全部回答
struct rsdatp[]=,,,,};黑体标出来的地方少一个引号。加上就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小天使童鞋店(燕山商业街)这个地址在什么地方
如何做好一个决策网页??
成都理工大学的公寓分类怎么回事?
QQ聊天窗口怎么变小
谁给我个QQ牧场资格啊!!!!
养老保险一年多少钱
四川没有的少数民族是哪个族?
寻找在线的PS高手..
E63行货有白色吗?官网查到只有黑、红、蓝。
10月3日是什么星座
头发黄为何
用花来借物喻人的好句子
空间里的偶像模块不知道到哪去了?
我的QQ不在我的好友里,怎么加上
dnf不灭之王称号最久要几天做完,
推荐资讯
我过去用迅雷看电影还是清晰地 为什么最近在
点为之顺其自然???
MP4在电脑时打开出现了 点问题
做网管是不是被人看不起!!
太刀狂战十字斩点5还是20
HTC的G1手机好吗?怎么分辨真假版啊?和诺基
炫舞里什么叫3拍、4拍等?
怎样点炫舞图标
初学电脑,打字,办公用什么样的电脑方面点,
在QQ邮箱上没有激活的淘宝帐号一直没用会自动
取消页眉和页脚设置怎么保存
帮忙做一下图!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?