24小时热门版块排行榜    

查看: 981  |  回复: 6

WANGGUANG123

金虫 (正式写手)


[求助] microsoft visual 2013已停止正常工作 已有2人参与

#include<iostream>
#include<fstream>
#include<math.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#define N 10
using namespace std;
double Min(double array[], int n)
{

                double min = array[1];
                if (n > 2)
                {
                        for (int i = 1; i < n; ++i)
                        {
                                if (array < min)
                                        min = array;

                        }
                }
                return min;

}
void main()
{
        //输出文件流 输出到data.txt
        ofstream outfilex,outfiley,outfilez;
        outfilex.open("x.txt";
        outfiley.open("y.txt";
        outfilez.open("z.txt";
        srand((unsigned)time(NULL));
        double  x[N], y[N], z[N];//定义1000个粒子的三个坐标数组
        double r;//半径大小
        double step, R;//步长和容限
        cout << "输入半径r:" << "  ";
        cin >> r;
        cout << endl << "输入移动步长step:" << "  ";
        cin >> step;
        cout << endl << "输入容量大小R:" << "  ";
        cin >> R;
        cout << endl;
        for (int i = 0; i < N; i++)//将每个粒子的坐标先全定义成000
        {
                x = 0; y = 0; z = 0;
        }
        int  a = 2;
        while (1)
        {
                //int hh = 0;
                x[a] = (rand() % 20000 - 10000) / 10000.0*R;//定义下一个粒子的随机坐标
                y[a] = (rand() % 20000 - 10000) / 10000.0*R;
                z[a] = (rand() % 20000 - 10000) / 10000.0*R;

                while (1)
                {
                        double distance[N];
                        for (int c = 1; c < a; c++)
                        {
                                distance[c] = (x[a] - x[c])*(x[a] - x[c]) + (y[a] - y[c])*(y[a] - y[c]) +(z[a] - z[c])*(z[a] - z[c]);//求两粒子间的距离
                        }
                        if (Min(distance,a)<4.0* r*r)//如果和之前所有粒子的距离小于球心距,则此粒子生成成功,产生下一个粒子判定
                        {
                                cout << a << "  ";       
                                cout << Min(distance, a)<<"  "<<x[a]<<" "<<y[a]<<"  "<<z[a]<<endl;
                                a++;
                                break;
                                }
                       
                       
                        else//否则在该粒子位置处随机运动给定步长,进行下一次判定
                        {
                                double theta = (rand() % 1000) / 1000.0*6.28;
                                double fy = (rand() % 1000) / 1000.0*6.28;
                                x[a] = x[a] + step*sin(theta)*cos(fy);
                                y[a] = y[a] + step*sin(theta)*sin(fy);
                                z[a] = z[a] + step*cos(theta);
                                if (abs(x[a]) >= R || abs(y[a]) >= R || abs(z[a]) >= R)
                                        break;
                        }
                }

                if (a == N+1)//到1000个粒子,退出
                        break;

        }
        system("pause";
        cout << "x y z坐标分别为" << endl;
        for (int j = 1; j < N+1 ; j++)
        {

                cout << j<< "  " << x[j] << "  " << y[j] << "  " << z[j] << endl;
                //system("pause";
                //输出到文件
                outfilex << x[j] << endl;
                outfiley << y[j] << endl;
                outfilez<<z[j] << endl;
               
        }
        //关闭输出文件流
    outfilex.close();
        outfiley.close();
        outfilez.close();
    system("pause";
}









结果能运行出来,但是在关闭运行框的时候会报错
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
代码中有两处发生了内存泄露。
1、if (a == N+1)处将N+1改为N;
2、for (int j = 1; j < N+1 ; j++)处同样将N+1改为N。
天道酬勤
2楼2015-11-15 10:48:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvweizhong

铜虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
C/C++中,所有对长度为N的数组全体元素的操作首元素编号为0,尾元素为N-1

发自小木虫Android客户端
3楼2015-11-15 18:32:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvweizhong

铜虫 (著名写手)

【答案】应助回帖

引用回帖:
2楼: Originally posted by zzy滴号 at 2015-11-15 10:48:04
代码中有两处发生了内存泄露。
1、if (a == N+1)处将N+1改为N;
2、for (int j = 1; j < N+1 ; j++)处同样将N+1改为N。

这种行为叫做操作越界,不算内存泄漏……

发自小木虫Android客户端
4楼2015-11-15 18:33:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

引用回帖:
4楼: Originally posted by lvweizhong at 2015-11-15 18:33:39
这种行为叫做操作越界,不算内存泄漏……
...

嗯!是应该叫越界。

发自小木虫Android客户端
天道酬勤
5楼2015-11-15 21:57:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

WANGGUANG123

金虫 (正式写手)


引用回帖:
2楼: Originally posted by zzy滴号 at 2015-11-15 10:48:04
代码中有两处发生了内存泄露。
1、if (a == N+1)处将N+1改为N;
2、for (int j = 1; j < N+1 ; j++)处同样将N+1改为N。

哦哦,是不是同样的可以直接改成double x【N+1】,这样 ,把数组长度加一

发自小木虫IOS客户端
6楼2015-11-17 07:19:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

引用回帖:
6楼: Originally posted by WANGGUANG123 at 2015-11-17 07:19:09
哦哦,是不是同样的可以直接改成double x【N+1】,这样 ,把数组长度加一
...

可以的。

[ 发自手机版 http://muchong.com/3g ]
天道酬勤
7楼2015-11-17 20:03:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 WANGGUANG123 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ELBZ6WwEaRj6 2026-11-04 6/300 2026-11-05 18:11 by My20PsvIExYO
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 6/300 2026-11-05 18:00 by My20PsvIExYO
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 11/550 2026-11-05 17:58 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 kvewwGtKktqB 2026-11-04 13/650 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 kvewwGtKktqB 2026-11-04 8/400 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 ncTVBM6AOJHF 2026-11-04 8/400 2026-11-05 17:38 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 ncTVBM6AOJHF 2026-11-04 14/700 2026-11-05 17:36 by My20PsvIExYO
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 ncTVBM6AOJHF 2026-11-04 11/550 2026-11-05 17:36 by My20PsvIExYO
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ncTVBM6AOJHF 2026-11-04 16/800 2026-11-05 17:25 by My20PsvIExYO
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 17:25 by My20PsvIExYO
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +6 ncTVBM6AOJHF 2026-11-04 19/950 2026-11-05 17:25 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 13/650 2026-11-05 17:15 by My20PsvIExYO
[基金申请] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-05 15:46 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 hNpp4Y2CGvSC 2026-11-04 10/500 2026-11-05 15:35 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 15:24 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 15:13 by My20PsvIExYO
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
[基金申请] 各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧 +5 iaeyuan 2026-11-01 5/250 2026-11-04 14:43 by jinchengzi
信息提示
请填处理意见