C++ 汇总用户输入数据

C++ 汇总用户输入数据,c++,C++,我试图将用户输入的数字相加,但它返回了一些超大的数字。如果有人能帮忙,那就太好了,谢谢 #include<iostream> using namespace std; int main() { int a; int attemptno = 1; int str[a]; //array int x; for(int a=0;a<10;a++){ cout << "Person " << attem

我试图将用户输入的数字相加,但它返回了一些超大的数字。如果有人能帮忙,那就太好了,谢谢

#include<iostream>
using namespace std;

int main()
{
    int a;
    int attemptno = 1;
    int str[a]; //array
    int x;

    for(int a=0;a<10;a++){
        cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
        cin >> x;
    }

    int sum;
    sum = 0;
    sum = sum + str[a];
    cout << "Total number of pancakes eaten is: " << sum << endl;

    return 0;
}
#包括
使用名称空间std;
int main()
{
INTA;
int attemptno=1;
int str[a];//数组
int x;

对于(int a=0;a您从未设置
str
的元素,因此'str'未初始化

sum = sum + str[a];

是未定义的行为。

str[]
的元素从未初始化,而且
a
的元素在初始化之前读取其内容的行为也未定义。要生成程序,您必须有一个非常灵活的编译器

为什么不使用

std::vector<int> str(a);

要计算总数。

您需要根据数组值计算总和:
sum=sum+str[a];
,但是在获取输入值时,您不需要填充数组。实际上,在这种情况下,您不需要数组来计算sum。您可以在获取输入值时计算sum,如下所示:

int main() {
    int a;
    int attemptno = 1;
    int x;
    int sum = 0;

    for(int a=0;a<10;a++){
        cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
        cin >> x;
        sum = sum + x;
    }

    cout << "Total number of pancakes eaten is: " << sum << endl;
    return 0;
}
intmain(){
INTA;
int attemptno=1;
int x;
整数和=0;

对于(int a=0;a您可能打算这样做:

#include<iostream>

using namespace std;

int main()
{
  //      int a;    // << deleted
  int attemptno = 1;
  int str[10];     // << changed array of 10 elements
  int x;

  for (int a = 0; a<10; a++) {
    cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
    cin >> x;
    str[a] = x;    // << added
  }

  int sum = 0;

  for (int a = 0; a < 10; a++)  // << added for loop
  {
    sum = sum + str[a];
  }

  cout << "Total number of pancakes eaten is: " << sum << endl;

  return 0;
} 
#包括
使用名称空间std;
int main()
{

这个代码的值是什么?< <代码> >数组的大小是多少?你还记得一个数组大小的最大索引<代码> >代码>吗?最后,你知道C++没有?我也建议你尝试。不,代码> < <代码>不等于<代码> 10代码>代码。代码中的哪里?说吧?你需要的是一本学习编程的好书:他甚至不初始化<代码> A<代码> MichaelWalz:真的,在<<代码> < <代码> >中被代码< int=0 < /代码>欺骗。什么事情可以做得更优雅?用C++的“LG29”作为Bathsheba答案的建议。
#include<iostream>

using namespace std;

int main()
{
  //      int a;    // << deleted
  int attemptno = 1;
  int str[10];     // << changed array of 10 elements
  int x;

  for (int a = 0; a<10; a++) {
    cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
    cin >> x;
    str[a] = x;    // << added
  }

  int sum = 0;

  for (int a = 0; a < 10; a++)  // << added for loop
  {
    sum = sum + str[a];
  }

  cout << "Total number of pancakes eaten is: " << sum << endl;

  return 0;
}