C++ 在线判断:数组规范化,我不&x27;我不知道为什么我错了
说明: 对于由多个非负int组成的数组,数组规范化意味着每个元素将被数组的和除。假设数组至少由一个元素组成,并且元素的和不会超过int的最大值 输入: 几个非负整数 输出: 标准化的结果 样本输入 1234 样本输出 0.10 0.20 0.30 0.40 我认为这是一个容易的问题,但接受率只有12/1352。这是我的代码C++ 在线判断:数组规范化,我不&x27;我不知道为什么我错了,c++,C++,说明: 对于由多个非负int组成的数组,数组规范化意味着每个元素将被数组的和除。假设数组至少由一个元素组成,并且元素的和不会超过int的最大值 输入: 几个非负整数 输出: 标准化的结果 样本输入 1234 样本输出 0.10 0.20 0.30 0.40 我认为这是一个容易的问题,但接受率只有12/1352。这是我的代码 #include <vector> #include <iostream> #include <iomanip> using namesp
#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a,t=0,sum=0;
vector<int> arr;
while(cin>>a)
{
arr.push_back(a);
t++;
}
for(int i=0;i<t;i++)
sum+=arr[i];
if(sum)
{
cout<<setiosflags(ios::fixed)<<setprecision(2)<<1.0*arr[0]/sum;
for(int i=1;i<t;i++)
{
cout<<setiosflags(ios::fixed)<<setprecision(2)<<" "<<1.0*arr[i]/sum;
}
}else
{
for(int i=0;i<t;i++)
if(i==0)
cout<<"0.00";
else
cout<<" 0.00";
}
return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
int a,t=0,和=0;
向量arr;
而(cin>>a)
{
arr.推回(a);
t++;
}
对于(inti=0;i是的,的确,你是对的,这是一个简单的问题
cout<<setiosflags(ios::fixed)<<setprecision(2)<<" "<<1.0*arr[i]/sum;
是的,的确,你是对的,这是一个简单的问题。你的输出语句
cout<<setiosflags(ios::fixed)<<setprecision(2)<<" "<<1.0*arr[i]/sum;
coutWhat do接受率仅为12/1352
mean?@goodvibration这意味着OP正在使用一些在线编程测试软件,该软件提供了1352个神秘的测试用例,OP的解决方案只通过了12个。此外,您的代码看起来比它应该的要麻烦得多。每件事都分为几个用例,似乎是pretty redundant。我无法立即理解为什么几乎所有的测试用例都会失败。优先级是正确的,精度是正确的,类型是正确的(或者至少在问题约束条件下是足够的)。问题可能是在他们想要输出的重要数字方面没有得到充分的说明。这就是“挑战”的问题像这样。接受率仅为12/1352是什么意思?@goodvibration这意味着OP正在使用一些在线编程测试软件,该软件提供了1352个神秘的测试用例,OP的解决方案只通过了12个。而且,你的代码看起来比它应该的要麻烦得多。所有东西都分为几个用例,似乎是pretty冗余。我无法立即理解为什么几乎所有的测试用例都会失败。优先级是正确的,精度是正确的,类型是正确的(或者至少在问题约束条件下是足够的)。可能是问题在他们想要输出的重要数字方面没有得到充分的说明。这就是像这样的“挑战”的问题。