gpt4 book ai didi

c++ - Int 到 Char 数组(部分总和)

转载 作者:行者123 更新时间:2023-11-28 06:51:12 26 4
gpt4 key购买 nike

我对“制表符”输出有疑问。我的程序将显示部分总和。我想将这些部分总和保存在选项卡数组中,但它只显示第一个总和。

这是我写的代码:

const char numbers[] = { "1 2 3 4" };
cout << numbers << endl;
for (int i = 0; i < strlen(numbers); ++i)
{
if (numbers[i] != ' ') cout << numbers[i] << endl;
}
int sum = 0;
char tab[20];
for (int i = 0; i < strlen(numbers); ++i){
if (numbers[i] != ' ') {
sum += atoi(&numbers[i]);
_itoa_s(sum,&tab[i],sizeof(tab),10);
}
}
cout << tab;
_getch();
return 0;

我如何让它显示正确的部分总和,例如:1 3 6 10

最佳答案

sizeof以字节为单位显示数组的大小,而不是数组中元素的数量。

像这样的东西会给你元素的数量:

int num_element = sizeof(numbers)/sizeof(numbers[0]);

或者一个完整的解决方案:

const char numbers[] = { "1 2 3 4" };
int num_elements = sizeof(numbers)/sizeof(numbers[0]);
cout << numbers << endl;
for (int i = 0; i < num_elements; ++i)
{
if (numbers[i] != ' ') cout << numbers[i] << endl;
}
int sum = 0;
char tab[20];
for (int i = 0; i < num_elements; ++i){
if (numbers[i] != ' ') {
sum += atoi(&numbers[i]);
_itoa_s(sum,&tab[i],sizeof(tab),10);
}
}
cout << tab;
_getch();
return 0;

尽管将 num_element 替换为您的 for 循环后上面的代码应该可以工作,但我建议您查看 std::arraystd::vector

关于c++ - Int 到 Char 数组(部分总和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23921318/

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