0

当我尝试为这样的向量构建forloop时:

  vector<int> v;

  int  a;
    while (cin>>a){
      if(i<=0 || i>=10)
        cout << "Please enter int between 0 and 10:" << endl;
      else
        v.push_back(a);
    }

  int min;
  int sum;
  for (int &i: v){
    if(v.empty())
      min = i;
    else(i<min){
     min = i;
    sum += i;
    }
  }

它显示 :expected initializer 在 â 标记之前

我哪里弄错了?非常感谢!

.bashrc:

这是我的.bashrc:

  # .bashrc

    # User specific aliases and functions
    export PATH=/usr/remote/gcc-4.8/bin:$PATH
    export LD_LIBRARY_PATH=/usr/remote/gcc-4.8/lib:$LD_LIBRARY_PATH
    alias g++='g++ -std=c++11'


    # Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fio9
4

1 回答 1

1

在将 min 用于 else if 条件之前,您似乎没有初始化它。

但是,您只是有一个带有语法错误条件的 else 。

这对我有用:

#include <vector>
#include <iostream>
#include <limits.h>

using namespace std;

int main()
{
    vector<int> v;

    int  i;
    while (cin >> i) {
        if(i < 0 || i > 10)
            cout << "Please enter int between 0 and 10:" << endl;
        else
            v.push_back(i);
    }

    int sum = 0;
    int min = INT_MAX;

    for (int &i: v) {
        if (i < min)
            min = i;
        sum += i;
    }

    cout << "min: " << min << endl;
    cout << "sum: " << sum << endl;
}

我使用以下命令构建此代码:g++ -std=c++11 main.cpp

输出是:

1
2
3
min: 1
sum: 6
于 2013-09-13T02:02:21.500 回答