C语言实现两个数的和

代码:

#define _CRT_SECURE_NO_WARNINGS 1 // 禁用MSVC编译器中关于安全函数的警告
  
#include <stdio.h>  // 引入标准输入输出库  

int main()
{
    int a, b, sum; // 声明三个整型变量a, b, sum  
    printf("请输入第一个数: "); // 提示用户输入第一个数  
    scanf("%d", &a); // 读取用户输入的整数并存储在变量a中  
    printf("请输入第二个数: "); // 提示用户输入第二个数  
    scanf("%d", &b); // 读取用户输入的整数并存储在变量b中  
    sum = a + b; // 计算a和b的和,并将结果存储在变量sum中  
    printf("%d + %d = %d\n", a, b, sum); // 打印出a, b和它们的和  
    return 0; // 程序正常结束  
}
#define _CRT_SECURE_NO_WARNINGS 1
  1. 这行代码是一个预处理指令,用于告诉MSVC(Microsoft Visual C++)编译器忽略关于使用不安全函数(如scanfsprintf等)的警告。在较新版本的Visual Studio中,这些函数被认为是不安全的,因为它们可能导致缓冲区溢出等安全问题。然而,对于简单的示例或学习目的,使用这些函数是可行的,并且通过这个宏可以禁用相关的警告。

代码生成结果:

代码中出现两个警告,不影响代码正常运行,要想解决这个警告,再定义一个变量,来储存scanf的返回值如下所示:

#define _CRT_SECURE_NO_WARNINGS 1 // 禁用MSVC编译器中关于安全函数的警告  

#include <stdio.h>  // 引入标准输入输出库,用于执行输入输出操作  

int main()
{
    int a, b, sum, c; // 声明四个整型变量:a, b用于存储用户输入的两个数,sum用于存储它们的和,c用于存储scanf的返回值  

    printf("请输入第一个数: "); // 提示用户输入第一个整数  
    c = scanf("%d", &a); // 读取用户输入的整数并存储在变量a中,同时scanf的返回值(成功读取的项目数)存储在c中  

    // 注意:这里没有检查c的值,即没有错误处理  

    printf("请输入第二个数: "); // 提示用户输入第二个整数  
    c = scanf("%d", &b); // 读取用户输入的整数并存储在变量b中,同时更新c的值为这次scanf的返回值  

    // 同样,这里也没有检查c的值  

    sum = a + b; // 计算a和b的和,并将结果存储在变量sum中  
    printf("%d + %d = %d\n", a, b, sum); // 打印出a, b和它们的和  

    return 0; // 程序正常结束  
}


完善代码:

如果想让代码有错误处理部分 ,在其中加个if语句

#define _CRT_SECURE_NO_WARNINGS 1 // 禁用MSVC编译器中关于使用不安全函数(如scanf)的警告  
  
#include <stdio.h>  // 引入标准输入输出库,用于执行输入输出操作  
  
int main()  
{  
    int a, b, sum, c; // 声明四个整型变量:a, b 用于存储用户输入的两个数,sum 用于存储它们的和,c 用于存储scanf的返回值  
  
    printf("请输入第一个数: "); // 提示用户输入第一个整数  
    c = scanf("%d", &a); // 读取用户输入的整数并存储在变量a中,同时scanf的返回值存储在c中以检查是否成功读取  
  
    // 检查scanf是否成功读取了一个整数  
    if (c != 1) {  
        printf("读取第一个数时发生错误。\n"); // 如果c不等于1,表示读取失败,打印错误信息  
        // 这里可以添加额外的错误处理代码,比如退出程序  
        return 1; // 返回非零值表示程序异常结束  
    }  
  
    printf("请输入第二个数: "); // 提示用户输入第二个整数  
    c = scanf("%d", &b); // 读取用户输入的整数并存储在变量b中,同时更新c的值为这次scanf的返回值  
  
    // 再次检查scanf是否成功读取了一个整数  
    if (c != 1) {  
        printf("读取第二个数时发生错误。\n"); // 如果c不等于1,表示读取失败,打印错误信息  
        // 这里也可以添加额外的错误处理代码  
        return 1; // 返回非零值表示程序异常结束  
    }  
  
    sum = a + b; // 计算a和b的和,并将结果存储在变量sum中  
    printf("%d + %d = %d\n", a, b, sum); // 打印出a, b和它们的和  
  
    return 0; // 程序正常结束,返回0  
}

这样代码就有了错误处理的能力

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值