c - 在两个 digis 数组之间执行求和

标签 c arrays

今天接受采访,我被问到以下问题 - 给定两个字符数组 arr1arr2,它们只包含数字和一个点,并给出一个值m,将它们相加成一个字符数组,其中点后包含 m 位数字。该程序应使用 C 编写。算法对他们来说并不重要,他们只是给了我一个编译器和 20 分钟的时间来通过他们的测试。

首先我想找到最大长度并从末尾开始遍历数组并在保持进位的同时对值求和:

int length = (firstLength < secondLength) ? secondLength : firstLength;
char[length] result;
for (int i = length - 1; i >= 0; i--) {
    // TODO: add code
}

问题是出于某种原因,我不确定在保持点的同时执行该总和的正确方法是什么。这个循环应该只执行外观而不是与 k 相反。我的意思是,此时我只想添加值,最后我将插入另一个循环,该循环将在点后打印 k 值。 我的问题是应该如何看待我提到的第一个循环(实际求和的循环),我真的被困住了。

最佳答案

The algorithm was not important

好的,在那种情况下,我会让 libc 为我做这件事(显然缺少错误处理):

void sum(char *as, char *bs, char *out, int precision)
{
    float a, b;

    sscanf(as, "%f", &a);
    sscanf(bs, "%f", &b);

    a += b;

    sprintf(out, "%.*f", precision, a);
}

关于c - 在两个 digis 数组之间执行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383419/

相关文章:

c++ - 使用 ctime 保存新时间点会覆盖旧字符串吗?

python - python中3d数组的最大值

C - 数组、排序和修改

c - Fibodigits - 计算斐波那契数位

php - 将数组条目与每个其他条目组合

ios - 计算从当前位置到 x 个对象的距离,并使用从最近到最远的过滤器对它们进行排序

java - 如何标记玩家在迷宫游戏(二维数组)中去过的每个位置?

c - TeleUSE 窗口不调整大小

c - 从 strchr 获取 int 而不是指针

c - C中int变量和指针变量的区别