在本实验报告中,主要涉及了使用C语言进行基本的算术运算操作,包括加法、减法和乘法。以下是这些操作的具体实现细节:
1. **减法运算(jianfa函数)**:
- 减法操作是通过将输入的两个数字(字符串形式)转换为整数数组进行的。
- 读取两个字符串`a`和`b`,并分别计算它们的长度`len1`和`len2`,将每个字符串的字符转换为对应的整数值存储在数组`x`和`y`中。
- 如果`len1 > len2`,则执行正常减法;如果`len1 < len2`,则交换减数和被减数;如果两者长度相等,则比较它们的大小,根据比较结果执行相应的减法操作。
- 减法操作的实现关键在于处理借位。如果`x[i] >= y[i]`,则可以直接做减法;否则需要向前一位借位并调整值。
- 通过倒序输出数组`z`来得到结果。
2. **加法运算(add函数)**:
- 加法操作同样采用整数数组进行,读取两个字符串`a`和`b`,转换为整数数组`x`和`y`。
- 根据长度较大的数组确定总位数`len`,从低位开始逐位相加,同时处理进位`m`。
- 如果当前位的和加上进位大于等于10,则将个位存储在`z[i]`,并将进位设置为1;否则,进位为0。
- 在所有位处理完之后,倒序输出数组`z`作为结果。
3. **乘法运算(chengfa函数)**:
- 乘法运算涉及到字符串输入的两个数字,分别存储在`a`和`b`中,结果可能达到因数位数的两倍,因此使用`z3`数组存储结果。
- 对于每个数字`a`的每一位,乘以`b`的每一位,累加到相应的积的位置上。
- 在处理过程中,需要对每一位的乘积进行进位处理,确保计算的准确性。
实验报告中还使用了`#pragma warning(disable:4996)`来禁用VS编译器关于不安全函数的警告,这表明在代码中可能使用了如`scanf`之类的不推荐的函数。
总结,这个C语言实验报告展示了如何使用基本数据结构和控制流来实现数值的加减乘运算,这是理解C语言和算法基础的重要步骤。在实际编程中,可以考虑使用更安全的输入方法,如`fgets`和`sscanf`,以及考虑异常情况的处理,以提高代码的健壮性。