gpt4 book ai didi

c++ - 给出奇怪值的字符串

转载 作者:行者123 更新时间:2023-11-28 02:55:55 27 4
gpt4 key购买 nike

我必须得到一串由空格分隔的 2 位数字,以某种方式取出数字并对它们进行运算。但是值(value)观都错了,你们自己看:

...
string = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08"; //example

for (int i = 0; i < string.size()-2; i += 3){
arr[i] = 10 * string[i] + string[i+1];
cout << arr[i] <<' '<< 10 * string[i] <<' '<< string[i] << string[i+1] <<endl;
}

output:
536 480 08 i guess 0 times 10 isn't 480 as well as that plus 8 equals 536
530 480 02
550 500 22
625 570 97
566 510 38
543 490 15
528 480 00
568 520 40
528 480 00
603 550 75
532 480 04
533 480 05
535 480 07
606 550 78
580 530 52
540 490 12
578 530 50
605 550 77
619 570 91
536 480 08

最佳答案

您正在使用字符的 ASCII 值而不是数字的数值进行计算。例如。 '0' 为 48,'1' 为 49,依此类推。

for (int i = 0; i < string.size()-2; i += 3){
arr[i] = 10 * (string[i]-'0') + (string[i+1]-'0');
cout << arr[i] <<' '<< 10 * string[i] <<' '<< string[i] << string[i+1] <<endl;
}

关于c++ - 给出奇怪值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002448/

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