搜索
查看: 1005|回复: 12
打印 上一主题 下一主题

请问我这段代码那错了?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-1 18:48:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        int a,b,duquyonghu,zhengshumoshi,xiaoshumoshi;
    double a,b;
    printf("这里是趣味的吃牌计算器,正在加载,请等候……");
    Sleep(3000);
    system("cls");
    printf("加载成功!");
    Sleep(900);
    system("cls");
    printf("------------------------------\n");
    printf("|        趣味的吃编写……      |\n");
    printf("|   请进入前选一种模式……     |\n");
    printf("|         01.整数模式        |\n");
    printf("|         02.小数模式        |\n");
    printf("------------------------------\n");
    scanf("%d",&duquyonghu);
    if(duquyonghu==1||==01)
    {
    printf("这里是整数模式的计算器,希望您使用愉快");
    printf("------------------------------\n");
    printf("|        请选择运算类型……    |\n");
    printf("|         01.加法模式        |\n");
    printf("|         02.减法模式        |\n");
    printf("|         03.乘法模式        |\n");
    printf("|         04.除法模式        |\n");
    printf("|           05.退出          |\n");
    printf("------------------------------\n");
    scanf("%d",&zhengshumoshi);
    if(zhengshumoshi==1||==01)
    {
    printf("欢迎进入整数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("%d",&a);
    printf("请输入第二个数字:\n");
    scanf("%d",&b);
    printf("它们的和是:%d,算式是:%d+%d=%d。",a+b,a,b,a+b);
    }
    else if(zhengshumoshi==2||==02)
    {
    printf("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("%d",&a);
    printf("请输入第二个数字:\n");
    scanf("%d",&b);
    printf("它们的差是:%d,算式是:%d-%d=%d。",a-b,a,b,a-b);
    }
    else if(zhengshumoshi==3||==03)
    {
    printf("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("%d",&a);
    printf("请输入第二个数字:\n");
    scanf("%d",&b);
    printf("它们的积是:%d,算式是:%d*%d=%d。",a*b,a,b,a*b);
    }
    else if(zhengshumoshi==4||==04)
    {
    printf("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("%d",&a);
    printf("请输入第二个数字:\n");
    scanf("%d",&b);
    printf("它们的商是:%d,算式是:%d/%d=%d。",a/b,a,b,a/b);
    }
    else if(zhengshumoshi==05||5)
                break;
        else
        {printf("Error!");
    break;
        }
    }
    else
    {
    printf("这里是小数模式的计算器,希望您使用愉快");
    printf("------------------------------\n");
    printf("|        请选择运算类型……    |\n");
    printf("|         01.加法模式        |\n");
    printf("|         02.减法模式        |\n");
    printf("|         03.乘法模式        |\n");
    printf("|         04.除法模式        |\n");
    printf("|           05.退出          |\n");
    printf("------------------------------\n");
    scanf("%d",&xiaoshumoshi);
    if(xiaoshumoshi==1||==01)
    {
    printf("欢迎进入小数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("%lf",&a);
    printf("请输入第二个数字:\n");
    scanf("%lf",&b);
    printf("它们的和是:%3f,算式是:%3f+%3f=%3f。",a+b,a,b,a+b);
    }
    else if(xiaoshumoshi==2||02)
    {
    printf("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("lf",&a);
    printf("请输入第二个数字:\n");
    scanf("lf",&b);
    printf("它们的差是:%3f,算式是:%3f-%3f=%3f。",a-b,a,b,a-b);
    }
    else if(xiaoshumoshi==3||03)
    {
    printf("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("lf",&a);
    printf("请输入第二个数字:\n");
    scanf("lf",&b);
    printf("它们的积是:%3f,算式是:%3f*%3f=%3f。",a*b,a,b,a*b);
    }
    else if(xiaoshumoshi==4||04)
    {
    printf("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
    scanf("lf",&a);
    printf("请输入第二个数字:\n");
    scanf("lf",&b);
    printf("它们的商是:%3f,算式是:%3f/%3f=%3f。",a/b,a,b,a/b);
    }
    else if(xiaoshumoshi==05||5)
                break;
        else
        {
    printf("Error!");
    break;
        }
    }
        system("pause");
        return 0;
}[/mw_shl_code]代码超了100行,请见谅。
编译器显示第6、7、21、33、41、49、57、66、69、84、117、121行有错误。回答时请附修改后的代码及错误原因。谢谢各位、

最佳答案

查看完整内容

[mw_shl_code=c,true]#include #include #include #define PASSWD 123456 int main() { int a, b, duquyonghu, zhengshumoshi, xiaoshumoshi; double c, d; int passwd = 0; while (passwd != PASSWD) { int ch; puts("input the password"); scanf("%d", &passwd); while ((ch = getchar()) && ch != EOF && ch != '\n'); } printf ("这里是趣味的吃牌计算器,正在加载,请 ...
沙发
发表于 2014-12-1 18:48:15 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define PASSWD 123456

int main()
{
    int a, b, duquyonghu, zhengshumoshi, xiaoshumoshi;
    double c, d;

    int passwd = 0;
    while (passwd != PASSWD) {
        int ch;
        puts("input the password");
        scanf("%d", &passwd);
        while ((ch = getchar()) && ch != EOF && ch != '\n');
    }
    printf
        ("这里是趣味的吃牌计算器,正在加载,请等候……\n");
    Sleep(3000);
    system("cls");
    printf("加载成功!\n");
    Sleep(900);
    system("cls");
  start:
    printf("------------------------------\n");
    printf("|        趣味的吃编写……      |\n");
    printf("|   请进入前选一种模式……     |\n");
    printf("|         01.整数模式        |\n");
    printf("|         02.小数模式        |\n");
    printf("------------------------------\n");
    scanf("%d", &duquyonghu);
    if (duquyonghu == 1) {
        printf
            ("这里是整数模式的计算器,希望您使用愉快");
        printf("------------------------------\n");
        printf("|        请选择运算类型……    |\n");
        printf("|         01.加法模式        |\n");
        printf("|         02.减法模式        |\n");
        printf("|         03.乘法模式        |\n");
        printf("|         04.除法模式        |\n");
        printf("|           05.退出          |\n");
        printf("------------------------------\n");
        scanf("%d", &zhengshumoshi);
        if (zhengshumoshi == 1) {
            printf
                ("欢迎进入整数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%d", &a);
            printf("请输入第二个数字:\n");
            scanf("%d", &b);
            printf("它们的和是:%d,算式是:%d+%d=%d。", a + b,
                   a, b, a + b);
        } else if (zhengshumoshi == 2) {
            printf
                ("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%d", &a);
            printf("请输入第二个数字:\n");
            scanf("%d", &b);
            printf("它们的差是:%d,算式是:%d-%d=%d。", a - b,
                   a, b, a - b);
        } else if (zhengshumoshi == 3) {
            printf
                ("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%d", &a);
            printf("请输入第二个数字:\n");
            scanf("%d", &b);
            printf("它们的积是:%d,算式是:%d*%d=%d。", a * b,
                   a, b, a * b);
        } else if (zhengshumoshi == 4) {
            printf
                ("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%d", &a);
            printf("请输入第二个数字:\n");
            scanf("%d", &b);
            printf("它们的商是:%d,算式是:%d/%d=%d。", a / b,
                   a, b, a / b);
        } else if (zhengshumoshi == 5)
            exit(0);
        else {
            printf("Error!\n");
            goto start;
        }
    } else {
        printf
            ("这里是小数模式的计算器,希望您使用愉快");
        printf("------------------------------\n");
        printf("|        请选择运算类型……    |\n");
        printf("|         01.加法模式        |\n");
        printf("|         02.减法模式        |\n");
        printf("|         03.乘法模式        |\n");
        printf("|         04.除法模式        |\n");
        printf("|           05.退出          |\n");
        printf("------------------------------\n");
        scanf("%d", &xiaoshumoshi);
        if (xiaoshumoshi == 1) {
            printf
                ("欢迎进入小数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%lf", &c);
            printf("请输入第二个数字:\n");
            scanf("%lf", &d);
            printf("它们的和是:%3f,算式是:%3f+%3f=%3f。",
                   c + d, c, d, c + d);
        } else if (xiaoshumoshi == 2) {
            printf
                ("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%lf", &c);
            printf("请输入第二个数字:\n");
            scanf("%lf", &d);
            printf("它们的差是:%3f,算式是:%3f-%3f=%3f。",
                   c - d, c, d, c - d);
        } else if (xiaoshumoshi == 3) {
            printf
                ("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%lf", &c);
            printf("请输入第二个数字:\n");
            scanf("%lf", &d);
            printf("它们的积是:%3f,算式是:%3f*%3f=%3f。",
                   c * d, c, d, c * d);
        } else if (xiaoshumoshi == 4) {
            printf
                ("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
            scanf("%lf", &c);
            printf("请输入第二个数字:\n");
            scanf("%lf", &d);
            printf("它们的商是:%3f,算式是:%3f/%3f=%3f。",
                   c / d, c, d, c / d);
        } else if (xiaoshumoshi == 5)
            exit(0);
        else {
            printf("Error!");
            goto start;
        }
    }
    system("pause");
    return 0;
}
[/mw_shl_code]
板凳
发表于 2014-12-1 18:56:12 | 只看该作者
a, b你先定义成int,然后又定义成double

duquyonghu==1||==01
||==01是什么?

还有几行是break,你就没写迭代或者switch块,要break到哪里去?
地板
 楼主| 发表于 2014-12-2 17:13:40 | 只看该作者
哦,前面您说的第一条我还能理解。那么我就直接把小数的改成c和d就可以了吧?
第二条的意思是:如果“这个变量”=1或01,进入整数模式。
第三条我看不懂啊!我才四年级,正好switch是弱项。所以能不能附上个代码?
5#
 楼主| 发表于 2014-12-2 17:14:21 | 只看该作者
6#
发表于 2014-12-2 17:21:27 | 只看该作者
趣味的吃 发表于 2014-12-2 17:13
哦,前面您说的第一条我还能理解。那么我就直接把小数的改成c和d就可以了吧?
第二条的意思是:如果“这个 ...

第二条是你自创的语法吧,或选择这么写

if(var == 1 || var == 01)
不过1和01一样的,0开头是八进制数,八进制数的1和01还是相等
用scanf的%d读进来的十进制整数前面的零是自动舍弃的,所以不用判断用户是不是输入了01

第三条,你要break到哪里去?还是说你想给程序整个套个循环,让等用户输入05退出的时候再停止运行,但是忘了写?
7#
 楼主| 发表于 2014-12-2 17:24:41 | 只看该作者
请问能发改好的代码吗?在强调一下,我是四年级哎!看不懂啊!!!
8#
发表于 2014-12-2 18:18:12 | 只看该作者
趣味的吃 发表于 2014-12-2 17:24
请问能发改好的代码吗?在强调一下,我是四年级哎!看不懂啊!!!

你不告诉我你的break要干什么,怎么写代码给你?
9#
发表于 2014-12-4 11:09:01 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
    int duquyonghu,zhengshumoshi,xiaoshumoshi;
   
    double a,b;
    printf("这里是趣味的吃牌计算器,正在加载,请等候……");
    Sleep(3000);
    system("cls");
    printf("加载成功!");
    Sleep(900);
    system("cls");
    printf("------------------------------\n");
    printf("|        趣味的吃编写……      |\n");
    printf("|   请进入前选一种模式……     |\n");
    printf("|         01.整数模式        |\n");
    printf("|         02.小数模式        |\n");
    printf("------------------------------\n");
   
    scanf("%d",&duquyonghu);
    if(duquyonghu==1)
    {
                printf("这里是整数模式的计算器,希望您使用愉快");
                printf("------------------------------\n");
                printf("|        请选择运算类型……    |\n");
                printf("|         01.加法模式        |\n");
                printf("|         02.减法模式        |\n");
                printf("|         03.乘法模式        |\n");
                printf("|         04.除法模式        |\n");
                printf("|           05.退出          |\n");
                printf("------------------------------\n");
                scanf("%d",&zhengshumoshi);
                if(zhengshumoshi==1) // || 运算符接两个表达式
                {
                        printf("欢迎进入整数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("%d",&a);
                        printf("请输入第二个数字:\n");
                        scanf("%d",&b);
                        printf("它们的和是:%d,算式是:%d+%d=%d。",a+b,a,b,a+b);
                }
                else if(zhengshumoshi==2)
                {
                        printf("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("%d",&a);
                        printf("请输入第二个数字:\n");
                        scanf("%d",&b);
                        printf("它们的差是:%d,算式是:%d-%d=%d。",a-b,a,b,a-b);
                }
                else if(zhengshumoshi==3)
                {
                        printf("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("%d",&a);
                        printf("请输入第二个数字:\n");
                        scanf("%d",&b);
                        printf("它们的积是:%d,算式是:%d*%d=%d。",a*b,a,b,a*b);
                }
                else if(zhengshumoshi==4)
                {
                        printf("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("%d",&a);
                        printf("请输入第二个数字:\n");
                        scanf("%d",&b);
                        printf("它们的商是:%d,算式是:%d/%d=%d。",a/b,a,b,a/b);
                }
        /*
                else if(zhengshumoshi == 5)
                        break;
            */    // break; 语句用到循环中
                else
                {
                        printf("Error!");
                        //break;
                }
    }
    else
    {
                printf("这里是小数模式的计算器,希望您使用愉快");
                printf("------------------------------\n");
                printf("|        请选择运算类型……    |\n");
                printf("|         01.加法模式        |\n");
                printf("|         02.减法模式        |\n");
                printf("|         03.乘法模式        |\n");
                printf("|         04.除法模式        |\n");
                printf("|           05.退出          |\n");
                printf("------------------------------\n");
                scanf("%d",&xiaoshumoshi);
                if(xiaoshumoshi==1)
                {
                        printf("欢迎进入小数加法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("%lf",&a);
                        printf("请输入第二个数字:\n");
                        scanf("%lf",&b);
                        printf("它们的和是:%3f,算式是:%3f+%3f=%3f。",a+b,a,b,a+b);
                }
                else if(xiaoshumoshi==2)
                {
                        printf("欢迎进入整数减法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("lf",&a);
                        printf("请输入第二个数字:\n");
                        scanf("lf",&b);
                        printf("它们的差是:%3f,算式是:%3f-%3f=%3f。",a-b,a,b,a-b);
                }
                else if(xiaoshumoshi==3)
                {
                        printf("欢迎进入整数乘法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("lf",&a);
                        printf("请输入第二个数字:\n");
                        scanf("lf",&b);
                        printf("它们的积是:%3f,算式是:%3f*%3f=%3f。",a*b,a,b,a*b);
                }
                else if(xiaoshumoshi==4)
                {
                        printf("欢迎进入整数除法,请按要求输入两个数字:\n请输入第一个数字:\n");
                        scanf("lf%",&a);   // 没加 %
                        printf("请输入第二个数字:\n");
                        scanf("lf%",&b);  // 没加 %
                        printf("它们的商是:%3f,算式是:%3f/%3f=%3f。",a/b,a,b,a/b);
                }
                //else if(zhengshumoshi == 5)
                        //break;
                else
                {
                        printf("Error!");
                        //break;
                }
    }

    system("pause");
    return 0;
}[/mw_shl_code]


// 楼上很多人都已经回答你,我这里将基本编译通过的代码贴出来。  其实就三个错误: 1、|| 运算符使用错误   2、 break 要用在循环或者 switch 中   3、scanf() 必须要用取地址符。就像你知道你们家有装酱油的瓶子,你也知道要去装酱油,但是你得知道瓶子放在哪里。

10#
 楼主| 发表于 2014-12-6 19:10:30 | 只看该作者
rosynirvana 发表于 2014-12-2 18:18
你不告诉我你的break要干什么,怎么写代码给你?

好的,忘了。呵呵。我的意思是如果输入的是5,退出整个程序,如果输入错误,直接返回到主界面。
顺便问一下,如果想给这个程序加个密码,该输入什么代码控制?密码是六位数的。
11#
发表于 2014-12-6 21:39:35 | 只看该作者
趣味的吃 发表于 2014-12-6 19:10
好的,忘了。呵呵。我的意思是如果输入的是5,退出整个程序,如果输入错误,直接返回到主界面。
顺便问 ...

密码又要加在哪里?不输入密码不能运行计算器功能还是别的?
12#
 楼主| 发表于 2014-12-7 18:08:46 | 只看该作者
密码加在开头,意思是进入这儿计算器需要密码。进去以后里面没有密码
13#
 楼主| 发表于 2014-12-9 18:02:44 | 只看该作者
rosynirvana 发表于 2014-12-7 21:00
[mw_shl_code=c,true]#include
#include
#include

懂了,谢谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表