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

请问我这段代码那错了?

[复制链接]
楼主
发表于 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:21:27 | 显示全部楼层
趣味的吃 发表于 2014-12-2 17:13
哦,前面您说的第一条我还能理解。那么我就直接把小数的改成c和d就可以了吧?
第二条的意思是:如果“这个 ...

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

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

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

你不告诉我你的break要干什么,怎么写代码给你?
5#
发表于 2014-12-6 21:39:35 | 显示全部楼层
趣味的吃 发表于 2014-12-6 19:10
好的,忘了。呵呵。我的意思是如果输入的是5,退出整个程序,如果输入错误,直接返回到主界面。
顺便问 ...

密码又要加在哪里?不输入密码不能运行计算器功能还是别的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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