关于C++中关于定义变量,执行前赋值的一个问题?

#include<iostream>#include<iomanip>#include<cstdlib>usingnamespacestd;intmain(){intco... #include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main()
{
int count,num,sum,max;
double average;
count = 0;
cin >> num;
max = num;
while (num != -999)
{
sum += num;
if(num >max)
{
max = num;
}
count++;
cin >>num;
}
if (count != 0)
{
average = static_cast<double>(sum) / count;
cout <<setiosflags(ios::fixed);
cout <<setprecision(2);
cout <<average<<'\t'<<max;
}
}
在这里由于sum是被放在第一行里一起定义的,while语句执行前并未对sum进行赋值,结果就导致底下求和sum的值都会比实际值大一,请问为什么会大一?(如果把sum单独拿出来定义或是执行前对sum赋值0也能解决。)
展开
 我来答
cdyzxy
2018-10-19 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3675万
展开全部

凑巧sum中存放了数值1

更多追问追答
追问
可是也没对sum赋值啊?int 变量后,难道是会随即存放值?
追答
没有赋初值就看sum分配的空间存放过什么数了(在运行你自己程序之前)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式