标题:这个C语言编程的几个错误麻烦帮个忙
只看楼主
sm520177
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-12-4
结帖率:0
已结贴  问题点数:20 回复次数:1 
这个C语言编程的几个错误麻烦帮个忙
#include"stdio.h"
#include"time.h"
#include"conio.h"
#include"stdlib.h"
int main(void)
{
    void add();
    void subt();
    void mult();
    void divid();
    void question(int,int,char);
    void voice();
    void clrscr();
    int x=30,y=6;
    char choice;
    void randomize();
    while(1)
    {}
        clrscr();
        gotoxy(x,y);puts("1.加法练习");
        gotoxy(x,y+1);puts("2.减法练习");
        gotoxy(x,y+2);puts("3.乘法练习");
        gotoxy(x,y+3);puts("4.除法练习");
        gotoxy(x,y+4);puts("5.退 出");
        gotoxy(x,y+6);puts("请选择(1,2,3,4,5):");
        choice=getch();
        switch(choice)
        {
            case'1':add();break;
            case'2':subt();break;
            case'3':mult();break;
            case'4':divid();break;
            case'5':exit(0);break;
            default:printf("输入有错误!按任意键后重新输入……");
            getch();
        }
    }
    }
void add();
void clrscr();
{
    int i,num1,num2,answer;
    clrscr();
    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;
        num2=random(99)+1;
        question(num1,num2,'+');
        scanf("%d",&answer);
        if(answer==num1+num2)
        puts("正确!");
        else
        {
        void    voice();
            printf("错了,正确答案是:%d\n",num1+num2);
        }
    }
    printf("\n加法练习做完了,按任意键返回菜单……");
    getch();
}

void subt();
{

    int i,num1,num2,answer;
void    clrscr();
    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;
        num2=random(99)+1;
        question(num1,num2,'-');
        scanf("%d",&answer);
        if(answer==num1-num2)
        puts("正确!");
        else{
        void    voice();
            printf("错了,正确答案是: %d\n",num1-num2);
        }
    }
    printf("\n减法练习做完了,按任意键返回菜单……");
    getch();
}
void mult();
{
    int i,num1,num2,answer;
void clrscr();
    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;
        num2=random(10);
        question(num1,num2,'*');
        scanf("%d",&answer);
        if(answer==num1*num2)
        puts("正确!");
        else
        {
        void    voice();
            printf("错了,正确答案是:%d\n",num1+num2);
        }
    }
    printf("\n乘法练习做完了,按任意键返回菜单……");
    getch();
}
void divid();
{
    int i,num1,num2,answer;
void    clrscr();
    for(i=1;i<=5;i++)
    {
        do{
            num1=random(99)+1;
            num2=random(9)+1;
        }
        while(num1%num2!=0);
        question(num1,num2,'/');
        scanf("%d",&answer);
        if(answer==num1/num2)
        puts("正确!");
        else
            {
    void        voice();
            printf("错了,正确答案是:%d\n",num1/num2);
        }
    }
    printf("\n除法练习做完了,按任意键返回菜单……");
    getch();
}
void question(int n1,int n2,char opt);
{
    printf("%d%c%d=",n1,opt,n2);
}

void voice()
{
    int i;
    for(i=1;i<=3;i++)
    {
        sound(i*1000)
        delay(200)
        nosound()
    }
}
搜索更多相关主题的帖子: puts int void answer printf 
2020-12-04 11:56
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:20 
我用的gcc没有graphics.h,有关图形,声音的都屏蔽了,错误已指出并改正,函数的声明和使用还要多看看。
如果不是考试环境,把bcc和tc都扔了吧,太老了。

程序代码:
#include"stdio.h"
#include"time.h"
#include"conio.h"
#include"stdlib.h"

//函数声明放到main外面,有作用域的。
    void add();
    void subt();
    void mult();
    void divid();
    void question(int,int,char);
    void voice();
    void clrscr();

////////gcc没有clrscr,自定义一个,下同
void clrscr()
{
    system("cls");
}

int random(int x)
{
    return rand()%x;    
}
void randomize()
{
    srand((unsigned)time(NULL));
}
////////////

int main(void)
{

    int x=30,y=6;
    char choice;
    randomize();//void randomize(); 初始化随机种子,直接运行函数就行
    while(1)
    {    //{} 多了}
        clrscr();
        //gotoxy(x,y);
        puts("1.加法练习");
        //gotoxy(x,y+1);
        puts("2.减法练习");
        //gotoxy(x,y+2);
        puts("3.乘法练习");
        //gotoxy(x,y+3);
        puts("4.除法练习");
        //gotoxy(x,y+4);
        puts("5.退 出");
        //gotoxy(x,y+6);
        puts("请选择(1,2,3,4,5):");
        choice=getch();
        switch(choice)
        {
            case'1':add();break;
            case'2':subt();break;
            case'3':mult();break;
            case'4':divid();break;
            case'5':exit(0);break;
            default:printf("输入有错误!按任意键后重新输入……");
            getch();
        }
    }
}


void add()    //多了分号,跟下面的clrscr搞错了
//void clrscr(); 多了分号 这里应该是加法练习
{
    int i,num1,num2,answer;

    clrscr();    //自己嵌套,死循环
    printf("加法练习\n");    //增加一个说明

    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;    //random(99)+1;
        num2=random(99)+1;
        question(num1,num2,'+');
        scanf("%d",&answer);
        if(answer==num1+num2)
        puts("正确!");
        else
        {
            //void    voice(); 应该是voice();
            printf("错了,正确答案是:%d\n",num1+num2);
        }
    }
    printf("\n加法练习做完了,按任意键返回菜单……\n"); //加一个\n
    getch();
}

void subt() //多了分号
{

    int i,num1,num2,answer;
    //void    clrscr();    调用函数,不是声明函数

    clrscr();    
    printf("减法练习\n");    //增加一个说明

    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;
        num2=random(99)+1;
        question(num1,num2,'-');
        scanf("%d",&answer);
        if(answer==num1-num2)
        puts("正确!");
        else{
            //void    voice(); 同上
            printf("错了,正确答案是: %d\n",num1-num2);
        }
    }
    printf("\n减法练习做完了,按任意键返回菜单……");
    getch();
}
void mult() //多了分号
{
    int i,num1,num2,answer;
    //void clrscr();同上

    clrscr();    
    printf("乘法练习\n");    //增加一个说明

    for(i=1;i<=5;i++)
    {
        num1=random(99)+1;
        num2=random(10);
        question(num1,num2,'*');
        scanf("%d",&answer);
        if(answer==num1*num2)
        puts("正确!");
        else
        {
            //void    voice(); 同上
            printf("错了,正确答案是:%d\n",num1+num2);
        }
    }
    printf("\n乘法练习做完了,按任意键返回菜单……");
    getch();
}
void divid() //多了分号
{
    int i,num1,num2,answer;
    //void    clrscr();    同上

    clrscr();    //自己嵌套,死循环
    printf("除法练习\n");    //增加一个说明

    for(i=1;i<=5;i++)
    {
        do{
            num1=random(99)+1;
            num2=random(9)+1;
        }
        while(num1%num2!=0);
        question(num1,num2,'/');
        scanf("%d",&answer);
        if(answer==num1/num2)
            puts("正确!");
        else
        {
            //void    voice(); 同上
            printf("错了,正确答案是:%d\n",num1/num2);
        }
    }
    printf("\n除法练习做完了,按任意键返回菜单……");
    getch();
}
void question(int n1,int n2,char opt) //多了分号
{
    printf("%d%c%d=",n1,opt,n2);
}

void voice()
{
    int i;
    for(i=1;i<=3;i++)
    {
        //sound(i*1000);    //缺分号
        //delay(200);    //缺分号
       // nosound();    //缺分号
    }
}


[此贴子已经被作者于2020-12-4 18:50编辑过]

2020-12-04 18:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504114-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.129653 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved