C ++,A2oj.com,超市

时间:2015-03-13 11:45:25

标签: c++

这是问题

  1. 超市
  2. 问题陈述: 你在超市里想买N件,但你只有S美元。

    输入格式: 前两个数字N(项目数)和S(您拥有的美元数量)后跟N个整数表示每个项目的价格 N是小于或等于1,000,000的正整数 0< S< 1000000001 所有价格均低于1,000,001

    输出格式: 打印"是"如果物品的总价格小于或等于S并打印"否"否则。

    示例输入: 6 100 8 31 4 12 19 2

    示例输出: 是

    注意: 8 + 31 + 4 + 12 + 19 + 2 = 76

    76< 100

    然后"是"你可以买它们

    这是我的代码:

    #include <iostream>
    using namespace std;
    int main() 
    {
        int N,S;
        cin >> N >> S;
        int sum=0;
        int numslist[N];
        for (int i=0; i<N; i++)
        {
            cin>>numslist[i];
            sum=sum+numslist[i];
        }
        if(sum<=S)
            cout << "No" << endl;
        else if(sum>S)
            cout << "Yes" << endl;
        return 0;
        }
    

    我提交本“准则”和“在线评判”,并说出错误答案Website

    请任何人帮帮我说出错是什么意思?

1 个答案:

答案 0 :(得分:0)

您不能声明一个只在运行时已知的大小的数组,它必须在编译时知道(忽略编译器扩展)。所以你不能这样做

int N;
cin >> N;
int numslist[N];

相反,你可以做到

int N;
cin >> N;
vector<int> numslist(N);