c - 加减hackerrank
问题描述
我是 C 的初学者,我在hackerrank 中遇到问题,我遇到了一个称为“加减”的问题,其中没有获得问题的预期输出。
我在计算中对浮动数据类型感到困惑。这是问题所在。我们必须给包含正、负和零值的数字数组,输入和输出应如下所示。
6
-4 3 -9 0 4 1
样本输出
0.500000
0.333333
0.166667
数组中有 3 个正数、2 个负数和 1 个零。发生比例为正:3/6=0.50000,负:2/6 =0.33333,零:1/6=0.166667 ..
这是我没有得到预期输出的代码。
int main()
{
int n,i,p,q,r,a[50],pos,res,zer,neg;
double posres,negres,zerres;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(a[i]>0)
++p;
else if(a[i]<0)
++q;
else if(a[i]=0)
++r;
}
posres=p/n;
negres=q/n;
zerres=r/n;
printf("%lf\n%lf\n%lf\n",posres,negres,zerres);
return 0;
}
但我的输出是:
699317.000000
162833139.000000
0.000000
我哪里做错了?
解决方案
Replace a[i]=0
,它为 赋值0
,a[i]
with a[i]==0
,这是一个比较。并在循环之前初始化p
、q
和r
to 。0
否则你会得到未定义的行为,例如你看到的垃圾。
推荐阅读
- java - xml 中的未知属性
- bash - 传递函数输出以查找作为参数传递给输入文件的函数输出的字符串
- css - 与 DOCTYPE 相关的不连贯的 HTML 行为
- asp.net - OnClientClick 后按钮 OnClick 不触发
- javascript - 试图了解 Redux 动作创建者
- javascript - 如何在单个选择的选择中禁用其他选择的选择和关闭选择的选项
- pdf-viewer - 在c#中直接从字节数组显示PDF而不保存到硬盘中
- python - 使用 Python statsmodel 进行多元线性回归
- sql - SQL Server:更改具有固定值的列
- android - 有时 onPostExecute(Byte val) 没有被调用