求助~同一代码,在VC++6.0和VS2008中怎么会有不同?VS2008则不能正常处理~

zzdun 2008-11-18 05:18:36
#include <iostream>
#include <cmath>
int main()
{
using namespace std;
const double dl = 0.10;
const double fl = 0.05;
const int tz = 100;
int n;
float daphne,cleo;
for (n=2;daphne>=cleo;n++)
{
daphne = tz + (tz * dl) * n;
cleo = tz * pow(1+fl,n);
cout << n << "年后,Cleo的投资价格才能超过Daphne的投资价值。\n";
cout << "Daphne此时的投资价值为:" << daphne << endl << "Cleo此时的投资价值为:" << cleo << endl;
}
cin.get();
return 0;
}



在VC++6.0上是没有问题的~~

而在VS2008上则提示
Run-Time Check Failure #3 - The variable 'daphn' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'cle' is being used without being initialized.
强行继续才能得到结果。难道还要在for语句前面添加N=1时的dephne和cleo“初始化”?








-----------------------------------------------------------------------------------------------------------------

#include <iostream>
#include <string>
#include <cmath>
int main()
{
using namespace std;
const int Arsize = 11;
int sales_volume[Arsize];
int sumsv = 0;
string month[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","AUG","Sep","Oct","Nov","Dec"};
for (int n=1;n <= 12;n++)
{
cout << "请输入" << month[n-1] << "的销售量为:";
cin >> sales_volume[n-1];
sumsv +=sales_volume[n-1];
};
cout << "全年销售C++ for fools的情况如下:\n";
for (int m=1;m <= 12;m++)
cout << month[m-1] << "销售量为:" << sales_volume[m-1] <<endl;
cout << "全年的总销售量为:" << sumsv << endl;
return 0;
}

这题也是!~
在VC++6.0则没有问题~
在VS2008则提示
Run-Time Check Failure #2 - Stack around the variable 'sales_volume' was corrupted.
不解~~~
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
太乙 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zzdun 的回复:]
发帖不足一天不能+分~~~明天+++~~谢谢大侠
[/Quote]

我还能接分不?
zzdun 2008-11-18
  • 打赏
  • 举报
回复
发帖不足一天不能+分~~~明天+++~~谢谢大侠
zzdun 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zmlovelx 的回复:]
第一个问题在这
float daphne,cleo;
for (n=2;daphne>=cleo;n++)
daphne,cleo未初始化 就比较

第二个程序:
const int Arsize = 11;
int sales_volume[Arsize];
.........
sales_volume[n-1];
sales_volume[m-1]
当 m 或者n== 12时,就越界了.
[/Quote]

感谢~~
wzfxyer 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zmlovelx 的回复:]
第一个问题在这
float daphne,cleo;
for (n=2;daphne>=cleo;n++)
daphne,cleo未初始化  就比较

第二个程序:
const int Arsize = 11;
int sales_volume[Arsize];
.........
sales_volume[n-1];
sales_volume[m-1]
当 m 或者n== 12时,就越界了.
[/Quote]
说的对,在外面初始化。
一观星辰 2008-11-18
  • 打赏
  • 举报
回复
4楼 说得对
帅得不敢出门 2008-11-18
  • 打赏
  • 举报
回复
第一个问题在这
float daphne,cleo;
for (n=2;daphne>=cleo;n++)
daphne,cleo未初始化 就比较

第二个程序:
const int Arsize = 11;
int sales_volume[Arsize];
.........
sales_volume[n-1];
sales_volume[m-1]
当 m 或者n== 12时,就越界了.
nk_ysg 2008-11-18
  • 打赏
  • 举报
回复
VC6对C或C++标准支持的很差,一般定义一个变量后进行初始化是个好的编程习惯
zzdun 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taodm 的回复:]
扔了VC6,相信VC2008
[/Quote]

那也告诉我为什么有这样的提示啊
taodm 2008-11-18
  • 打赏
  • 举报
回复
扔了VC6,相信VC2008

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧