24小时热门版块排行榜    

查看: 915  |  回复: 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滴号

金虫 (小有名气)

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

嗯!是应该叫越界。

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

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 为什么网上很多人说本周 12号出结果 +4 瞬息宇宙 2026-08-10 4/200 2026-08-11 02:02 by 旁观2020
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +3 Tide man 2026-08-10 3/150 2026-08-10 21:48 by GZUZM
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 关于Filecode分析方法 +3 majunge000 2026-08-10 3/150 2026-08-10 15:46 by lch2012
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +14 Lanmanbaby 2026-08-09 22/1100 2026-08-10 14:57 by wwncly
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +4 布布和一二 2026-08-10 4/200 2026-08-10 14:50 by 医学老男孩
[基金申请] 好奇怪的filecode +4 布布和一二 2026-08-08 5/250 2026-08-10 14:20 by 冰心玉壶晴
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
信息提示
请填处理意见