当前位置: 首页 > news >正文

C语言加法函数实现详解

模块四------模块化程序设计01------函数的定义(第一题)

(本人答案与分析)

1.自定义一个相加函数,实现对输入的两个数的相加,并在主函数中输出两个数的和

代码如下:

#include <stdio.h>
int add(int a,int b)
{
return a + b;
}
int main()
{
int n1,n2,sum;
printf("请输入2个数字:\n");
scanf("%d %d",&n1,&n2);

sum = add(n1,n2);
printf("%d + %d = %d\n",n1,n2,sum);

return 0;
}

这是一个使用函数表达的C语言加法程序

一. 预处理指令(头文件包含)
#include <stdio.h>

二. 函数定义add


int add(int a, int b)
{
return a + b;
}

三. 主函数:main

int main()
{
// 函数体
return 0;
}


- `main()` 是程序的入口点,每个C程序必须有且只有一个main函数
- `int` 返回类型表示程序结束时返回一个整数值给操作系统
- `return 0;` 表示程序正常退出(非0值通常表示错误)

注意:分号 分号 分号!

四. 变量声明
int n1, n2, sum;
声明三个整型变量:


- `n1`:存储第一个输入的数字
- `n2`:存储第二个输入的数字
- `sum`:存储两个数字的和

五. 输入部分

printf("请输入2个数字:\n");
scanf("%d %d", &n1, &n2);


-printf():输出提示信息
- `\n` 是换行符
-scanf():读取用户输入:

六. 函数调用和计算

sum = add(n1, n2);

注意:是值传递,且是单向的,从实参到形参

七. 输出结果

printf("%d + %d = %d\n", n1, n2, sum);



-格式化输出:`%d`是整型占位符
-输出示例:`1 + 2 = 3`

八.程序正常结束

return 0;

}

潜在问题和改进建议

1. 输入验证缺失:如果用户输入非数字,程序会异常

// 改进示例
if (scanf("%d %d", &n1, &n2) != 2)

{
printf("输入错误!\n");
return 1;
}

2. 变量命名:可以更有描述性
```c
int first_number, second_number, result;
```

3.错误处理:没有处理溢出情况


http://www.cnnetsun.cn/news/175694.html

相关文章:

  • Excalidraw实现KANO模型:需求优先级排序
  • 基于Java+大数据+SSMB站数据分析可视化系统(源码+LW+调试文档+讲解等)/B站数据可视化/B站数据分析/B站分析系统/数据可视化系统/数据分析系统/B站数据平台/B站可视化工具
  • 基于Python+大数据+SSMCBA球员数据可视化分析系统(源码+LW+调试文档+讲解等)/CBA球员数据展示系统/CBA球员数据统计系统/CBA球员数据分析平台/篮球数据可视化分析系统
  • Excalidraw导出PDF注意事项:格式保持完整
  • 【C++】优选算法必修篇之双指针实战:移动零 复写零
  • 【C++】继承深度解析:继承方式和菱形虚拟继承的详解
  • Excalidraw背景设置:更换画布颜色或图片
  • Excalidraw深度测评:为什么它成技术团队首选白板工具?
  • 笨人小白的温故知新——排序(3)
  • 基于python的RSA加密算法软件的研究设计(源码+文档)
  • Excalidraw界面原型设计:产品经理快速出稿方案
  • Excalidraw价值流图:精益生产流程优化
  • 嵌入式多线程从“能跑“到“稳定“的关键一步!
  • 【空间辨识】一致模态指标与模态参与因子的随机子空间辨识研究(Matlab代码实现)
  • 基于Java+SSM+SSM线上管理系统(源码+LW+调试文档+讲解等)/线上管理平台/在线管理系统/线上管理软件/网络管理系统/线上办公系统
  • 分层模糊系统:梯度下降与递推最小二乘法联合辨识研究(Matlab代码实现)
  • 人机差异的核心
  • Excalidraw暗黑模式设置:夜间使用的护眼方案
  • 精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板
  • CentOS 7 x86系统安装EMQX 【kaki备忘录】
  • 文献综述:近年“知识工程(Knowledge Engineering)与知识库/知识图谱建设(KB/KG)”研究脉络与展望
  • Excalidraw监控指标采集:Prometheus+Grafana集成
  • 【自动驾驶基础】LDM(Latent Diffusion Model) 要点总结
  • 【FreeRTOS实战】互斥锁专题:从理论到STM32应用题
  • STM32学习——AD单通道AD多通道
  • 基于Spring Boot的农产品销售系统的设计与实现毕设源码
  • 基于Spring Boot的流浪动物救助平台的设计与实现毕业设计
  • 备份恢复-Cordovaopenharmony本地安全方案
  • 创建目标模块 Cordova 与 OpenHarmony 混合开发实战
  • 解决MQ消息丢失问题的5种方案