我正试图用"&""-&";,和mod"%"操作员。然而,我在编码它时遇到了麻烦。我使用了一个数字文本文件来编码这个:578548798766656543423468和654589876578097433579。请帮忙!我不知道在哪里添加,也不知道该怎么做。编辑:非常感谢!!
好的,所以你需要:
- 编写3个函数(add、sub、mod(。理想情况下,应该将它们放在现有的print_number((和main((函数之间
- 这些函数中的每一个都将使用3个数字(2个操作数和一个结果(。由于数字存储为成对的值(指向第一个数字的指针和多个数字(,因此这些函数将使用6个参数。这就是";添加";可以看起来像:
void add(short * a, const size_t digits_in_a, short * b, const size_t digits_in_b, short * c, size_t& digits_in_c) {
// Here you add b and c digit by digit and store the result in c.
}
- 加法函数的工作方式与孩子们在小学时加数字的方式相同——在一个循环中,一个数字接一个数字,如果加两个数字的结果大于10,则在下一次迭代中加1,并从当前部分结果中减去10。您不能忘记的是,在每次迭代中,通过调用函数increase_capacity(c,digitals_in_c(来增加结果(c(的容量
- 子功能类似
- 在mod函数中,如果不需要iplement除法,您可以调用sub((,直到余数为负数
- 您将在main((函数中的行之间调用函数
print_number(p_number2, ...);
和
delete[] p_number1;
- 在调用函数之前,您需要为结果创建存储,例如:
size_t digits_in_result1 = 0, digits_in_result2 = 0, digits_in_result3 = 0;
short * p_result1 = new short[0];
short * p_result2 = new short[0];
short * p_result3 = new short[0];
- 您可能希望通过调用print_number((来打印结果
- 不要忘记在最后删除结果