输出 下面的代码是一个 C++ 程序,用于计算给定文本中的字母之和。
#include <iostream>
using namespace std;
int letter_sum(string text)
{
int Psum = 0;
int n;
while (text[n] != '\0')
{
n++;
Psum = Psum + text [n];
}
int Rsum = Psum - (96*n);
return Rsum;
}
int main ()
{
string text;
cout << "type the text: ";
cin >> text;
int displayvalue =letter_sum(text);
cout << displayvalue << endl;
}
根据输出,我期待一个数字(当然是给定文本中字母的总和),但我收到一条错误消息,显示分段错误。我是编码初学者。所以请用一些简单的术语解释,如果可能的话请告诉我如何做来解决这个问题。
n 的值必须初始化,
int n = 0;
如果该值未初始化,它将有一个随机垃圾值,如“16553072”。这就是为什么当访问文本[16553072]的索引值时,它超出了分配的内存并抛出分段错误。