关于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也能解决。) 展开
#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也能解决。) 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询