gpt4 book ai didi

c++ - 从数组输出的数字与使用递归函数输入的数字不同?

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

我正在制作一个递归数组函数,该函数计算数字并将它们相加并在递归函数中返回它们。该函数似乎确实有效,但我最初输入到数组中的数字是 1、2、3、4、5,但程序告诉我这些数字是 49、50、51、52、53 ...我很困惑为什么这可能正在发生,任何帮助或见解将不胜感激。谢谢!

#include <iostream>
using namespace std;

const int SIZE = 5;//size of array
int sum(int [], int);//recursive function

int main()
{
int sumArray[SIZE] = { '1', '2', '3', '4', '5'};//array with predetermined values

cout << sumArray[0] << endl;//49
cout << sumArray[1] << endl;//50
cout << sumArray[2] << endl;//51
cout << sumArray[3] << endl;//52
cout << sumArray[4] << endl;//53

cout << sum(sumArray, SIZE) << endl;//displays the amount 255 (5 elements added)

system("pause");
return 0;
}

int sum(int sumArray[], int size)
{
if (size == 1)
return sumArray[size - 1];
else
{
cout << size << endl;
return sumArray[size - 1] + sum(sumArray, size - 1);
}
}

最佳答案

你实际上是在数组中放入数字的ASCII码:'1'实际上是一个代码为49的char,它被转换为int 49。写如下:

int sumArray[SIZE] = { 1, 2, 3, 4, 5 };

这叫做 implicit conversion - 查看“积分促销”部分。

关于c++ - 从数组输出的数字与使用递归函数输入的数字不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22444081/

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