A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© donkey2 中级黑马   /  2014-11-9 16:35  /  1375 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 donkey2 于 2014-11-11 12:11 编辑


/*
题目:程序运行的时候提示下列信息
请输入相应数字选择需要执行的运算:
1 加法
2 减法

用户选择运算后,再提示用户输入两个需要进行运算的整数,输入完毕后就输出运算结果
*/
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
//        NSLog(@"Hello, World!");

        NSLog(@"请输入相应数字选择需要执行的运算:\n1 加法\n2 减法");
        int a,b,c;
        int result;
        scanf("%i",&a);
        NSLog(@"请输入两个整数");
        scanf("%i %i",&b,&c);
        if (a == 1) {
            NSLog(@"您要执行的运算为‘加法’");
            result = b + c;
        }
       else if (a == 2){
           NSLog(@"您要执行的运算为‘减法’");
            result = b - c;
        }
       else if(a!=1&a!=2){
           NSLog(@"您的输入有误");
       }
        NSLog(@"计算的结果为 %i",result);
    }
    return 0;

}

运行后发现如下问题;

1. 如果开始选的不是1或2,输入的是3,虽然会输出一个提示用户输入有错的语句,但程序仍然可以向下执行。
2. 并且输出计算结果为0,这个结果显然是不正确的。

1 个回复

倒序浏览

#include <stdio.h>

int main()
{
    // 1. 提示用户选择计算类型
    printf("请输入相应数字选择需要执行的运算:\n");
    printf("1 加法\n");
    printf("2 减法\n");

    // 2. 定义变量存储用户选择的计算类型
    int type = 0;

    // 3. 让用户输入计算类型
    scanf("%d", &type);

    if (type!=1 && type!=2)
    {
        // type值输入不合理,就直接退出程序
        printf("非法选择\n");
        return 0;
    }

    // 4.提示用户输入两个计算的数值
    printf("请连续输入两个需要进行运算的整数,并且以空格隔开\n");

    // 5.定义2个变量存储数值
    int num1, num2;
    scanf("%d %d", &num1, &num2);

    // 6.计算
    int result;
    if (type == 1) {
        result = num1 + num2;
        printf("%d + %d = %d\n", num1, num2, result);
    } else if (type == 2) {
        result = num1 - num2;
        printf("%d - %d = %d\n", num1, num2, result);
    }
    return 0;
}
这种处理的不同之处在于,先判断用户选择的类型,如果是非法类型,则return 0;提前结束程序。
这样更符合正常人的逻辑,值得自己好好体会一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马