gpt4 book ai didi

c - 在C中乘以整数的char数组

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:41 25 4
gpt4 key购买 nike

有人可以帮助我将此示例与 C 中的 for 循环相乘吗?嗯,

我以字符数组为例

 x[]={ '0','3','0','8','9','6','4','3','8','4','0','0','7' };

* 765432,765432

我需要多个元素:

ZZZ=(0*7)+(3*6)+(0*5)+(8*4)+(9*3)+(6*2)+(4*7)+(3*6)+(8*5)+(4*4)+(0*3)+(0*2)=
0 +18 + 0 +32 +27 +12 +28 +18 +40 +16 +0 +0 = 191

你怎么看:

我试过了:

int mnozi = 0;

for (i = 0; i < 12; i++) {
//mnozi = (int)p[i]-48;
for (int j = 7; j > 1; j--)
mnozi = ((int)p[i] - 48) *j;
printf("\n%d", mnozi);

ZZZ = ZZZ + mnozi;
}

还有一些奇怪的输出!

最佳答案

有多种方法可以将数组乘以重复两次的降序 7-2 模式。一种是简单地使用指针在 x 中遍历模式的两次迭代。它可以用多种方式编码,另一种是:

#include <stdio.h>

int main (void) {

char x[]={ '0','3','0','8','9','6','4','3','8','4','0','0','7' }, *p = x;
int i = 7, r = 0, z = 0;

for (; *p && p < x + sizeof x; p++) {
printf (" %d * %d = %d\n", *p - '0', i, (*p - '0') * i);
z += (*p - '0') * i--;
if (i < 2) { i = 7; if (++r > 1) break; }
}

printf ("\n z : %d\n\n", z);

return 0;
}

示例使用/输出

$ ./bin/multcharray

0 * 7 = 0
3 * 6 = 18
0 * 5 = 0
8 * 4 = 32
9 * 3 = 27
6 * 2 = 12
4 * 7 = 28
3 * 6 = 18
8 * 5 = 40
4 * 4 = 16
0 * 3 = 0
0 * 2 = 0

z : 191

通过限制应用乘法的 x 中的字符来限制迭代的细微变化可能是:

    char x[]={ '0','3','0','8','9','6','4','3','8','4','0','0','7' }, *p = x;
int i = 7, z = 0;

for (; *p && p < x + sizeof x - 1; p++) {
z += (*p - '0') * i;
printf (" %d * %d = %d\n", *p - '0', i, (*p - '0') * i);
if (--i < 2) i = 7;
}

printf ("\n z : %d\n\n", z);

变化是无穷无尽的。查看所有答案,如果您有任何问题,请告诉我们。

关于c - 在C中乘以整数的char数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com