24小时热门版块排行榜    

查看: 1586  |  回复: 11

ahuang1985

铁虫 (小有名气)

[求助] 拜托大家帮忙看个简单程序

本意是想从-10—10范围内随机产生10个不同的坐标点,并且满足该坐标到原点的距离小于等于10.  关于控制距离,我这样操作的:            
if(pow((b), 2) + pow((d), 2) + pow((f), 2) > 100.0)
                {
                 i=i-1;
                }

运行的结果是不同的点倒是产生了,但是距离小于10不满足。哪个大侠帮帮忙看看怎么改,多谢了! 程序如下:



#include
#include
#include
#define N 10

int main(void)
{

        int a[20]={0},b[N],x,y,z,i,j,t;
        int c[20]={0},d[N],e[20]={0},f[N];
        srand((unsigned int)time(NULL));
        for (i=0;i         {
                while(a[x=rand()%21-10]);
                {
                        b=x;
                        a[x]=1;

                }
                while(c[y=rand()%21-10]);
                {
                        d=y;
                        c[y]=1;

                }
                while(e[z=rand() %21-10]);
                {
                        f=z;
                        e[z]=1;

                }
              if(pow((b), 2) + pow((d), 2) + pow((f), 2) > 100.0)
                {
                 i=i-1;
                }

        }

        for(i =0 ;i         {
                printf("%4d,%4d,%4d\n ",b,d,f);
        }

}
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

好像字体倾斜了,不太清楚 再传一次

#include
#include
#include
#define N 10

int main(void)
{

        int a[20]={0},b[N],x,y,z,i,j,t;
        int c[20]={0},d[N],e[20]={0},f[N];
        srand((unsigned int)time(NULL));
        for (i=0;i         {
                while(a[x=rand()%21]);
                {
                        b=x-10;
                        a[x]=1;

                }
                while(c[y=rand()%21]);
                {
                        d=y-10;
                        c[y]=1;

                }
                while(e[z=rand() %21]);
                {
                        f=z-10;
                        e[z]=1;

                }
              if(pow((b), 2) + pow((d), 2) + pow((f), 2) > 100.0)
                {
                 i=i-1;
                }

        }

        for(i =0 ;i         {
                printf("%4d,%4d,%4d\n ",b,d,f);
        }

}
2楼2012-03-21 11:11:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

自己顶吧,忘了
#include
3楼2012-03-21 12:21:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
ahuang1985: 金币+6, ★★★很有帮助, 多谢! 2012-03-21 12:43:01
xzhdty: 金币+1, 欢迎常来程序语言 2012-03-21 19:02:05
CODE:
#include
#include
#include

#define N 10

int main(int argc, char **argv)
{
    int i, x, y, z, pt[N][3];
    double dist;

    srand(time(NULL));
    for ( i = 0; i < N; i++ ) {
        do {
            x = rand()%21 - 10;
            y = rand()%21 - 10;
            z = rand()%21 - 10;
            dist = sqrt(pow((double) x, 2) +
                        pow((double) y, 2) +
                        pow((double) z, 2));
        } while (dist > 10.0);
        pt[i][0] = x;
        pt[i][1] = y;
        pt[i][2] = z;
        printf("%4d %4d %4d %f\n", pt[i][0], pt[i][1], pt[i][2], dist);
    }

    return 0;
}

» 本帖已获得的红花(最新10朵)

4楼2012-03-21 12:22:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

送鲜花一朵
引用回帖:
4楼: Originally posted by 锐利的碎片 at 2012-03-21 12:22:48:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 10

int main(int argc, char **argv)
{
    int i, x, y, z, pt;
    double dist;

    srand(time(NUL ...

多谢帮忙,小弟还有一个问题,就是从-9.5—9.5范围内也随机产生10个不同的坐标点,(都是整数带0.5),距离满足小于等于10;
但是怎样使前面产生的10个坐标点和后面这10个坐标点合并成一个数组?不用排序。我弄了半天都运行不成功,帮帮忙哈~ 多谢了!
5楼2012-03-21 13:44:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher


xzhdty: 金币+1, 谢谢参与 2012-03-21 19:02:38
CODE:
#include
#include
#include

#define N 10

int main(int argc, char **argv)
{
    int i, x, y, z;
    double dist, pt[2*N][3];

    srand(time(NULL));
    for ( i = 0; i < N; i++ ) {
        do {
            x = rand()%21 - 10;
            y = rand()%21 - 10;
            z = rand()%21 - 10;
            dist = sqrt(pow((double) x, 2) +
                        pow((double) y, 2) +
                        pow((double) z, 2));
        } while (dist > 10.0);
        pt[i][0] = (double) x;
        pt[i][1] = (double) y;
        pt[i][2] = (double) z;
        printf("%f %f %f %f\n", pt[i][0], pt[i][1], pt[i][2], dist);
    }
   
    for ( i = N; i < 2*N; i++) {
        do {
            x = rand()%39 - 19;
            y = rand()%39 - 19;
            z = rand()%39 - 19;
            dist = sqrt(pow(0.5 * x, 2) +
                        pow(0.5 * y, 2) +
                        pow(0.5 * z, 2));
        } while (dist > 10.0);
        pt[i][0] = 0.5*x;
        pt[i][1] = 0.5*y;
        pt[i][2] = 0.5*z;
        printf("%f %f %f %f\n", pt[i][0], pt[i][1], pt[i][2], dist);
    }

    return 0;
}

» 本帖已获得的红花(最新10朵)

6楼2012-03-21 14:58:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

送鲜花一朵
多谢大帅哥!
7楼2012-03-21 16:00:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

送鲜花一朵
引用回帖:
6楼: Originally posted by 锐利的碎片 at 2012-03-21 14:58:30:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 10

int main(int argc, char **argv)
{
    int i, x, y, z;
    double dist, pt;

    srand(time(NUL ...

多谢大帅哥!
8楼2012-03-21 16:00:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

引用回帖:
6楼: Originally posted by 锐利的碎片 at 2012-03-21 14:58:30:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 10

int main(int argc, char **argv)
{
    int i, x, y, z;
    double dist, pt;

    srand(time(NUL ...

小弟再请教一个问题哈,太麻烦你了。就是前面不是得到了一些随机产生的坐标点吗,这里还存在一个动态坐标点(R1,R2,R3),下面for循环外面还有一个循环(即下面所标外循环),就是我想获得的(R1,R2,R3)坐标值只要和前面随机产生的坐标点一致,外循环就终止。
问题是我想比较所有的这些随机产生的坐标点,需要通过数组形式,如下for循环,但是break只能跳出一个循环,跳不出外面的大循环,所以不起作用。 应该怎样弄呢?我不知道我讲明白了没,有劳兄弟帮我看看,多谢啦!

外循环:{
    for ( i= N1; i
           if(pow((R1-pt[0]), 2) + pow((R2-pt[1]), 2) + pow((R3-pt[2]), 2)=0)
           {
                break;
           }
         }
}
9楼2012-03-21 22:24:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ahuang1985

铁虫 (小有名气)

外循环:{
    for ( i= N1; i
           if(pow((R1-pt[0]), 2) + pow((R2-pt[1]), 2) + pow((R3-pt[2]), 2)=0)
           {
                break;
           }
         }
}
10楼2012-03-21 22:28:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ahuang1985 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 中科院材料273求调剂 +3 yzydy 2026-03-15 3/150 2026-03-15 21:15 by ms629
[考研] 东南大学364求调剂 +3 JasonYuiui 2026-03-15 3/150 2026-03-15 18:57 by 无际的草原
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[考研] 267一志愿南京工业大学0817化工求调剂 +5 SUICHILD 2026-03-12 5/250 2026-03-14 14:53 by jean5056
[考研] 0703化学求调剂 +5 很老实人 2026-03-09 5/250 2026-03-14 02:57 by JourneyLucky
[考研] 337一志愿华南理工材料求调剂(有希望2吗?) +3 mysdl 2026-03-09 3/150 2026-03-14 02:53 by JourneyLucky
[考研] 化学工程321分求调剂(南京工业,浙江工业) +3 大米饭! 2026-03-09 4/200 2026-03-14 02:34 by JourneyLucky
[考研] 307求调剂 +7 超级伊昂大王 2026-03-10 7/350 2026-03-14 00:49 by JourneyLucky
[考研] 2026考研调剂+本科延边大学+山东大学+生物化学与分子生物学+有项目经验 +3 ccdsscjy 2026-03-10 3/150 2026-03-14 00:12 by JourneyLucky
[考研] 341求调剂 +4 番茄头--- 2026-03-10 4/200 2026-03-13 23:12 by JourneyLucky
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] 333求调剂 +3 球球古力 2026-03-11 3/150 2026-03-13 21:27 by JourneyLucky
[考研] 285化工学硕求调剂(081700) +6 柴郡猫_ 2026-03-12 6/300 2026-03-13 20:46 by hmn_wj
[考研] 材料专硕350 求调剂 +4 王金科 2026-03-12 4/200 2026-03-13 16:02 by ruiyingmiao
[考研] 289求调剂 +3 李政莹 2026-03-12 3/150 2026-03-13 11:02 by 求调剂zz
[考研] 0817化学工程与技术考研312分调剂 +3 T123 tt 2026-03-12 3/150 2026-03-13 10:49 by houyaoxu
[考研] 材料专硕274一志愿陕西师范大学求调剂 +4 薛云鹏 2026-03-13 4/200 2026-03-13 10:40 by 学员8dgXkO
[考研] 求调剂 资源与环境 285 +3 未名考生 2026-03-10 3/150 2026-03-13 10:31 by houyaoxu
[考研] 08食品或轻工求调剂,本科发表3篇sci一区top论文,一志愿南师大食品科学与工程 +3 我是一个兵, 2026-03-10 3/150 2026-03-13 10:21 by Yuyi.
[考研] 大连大学化学专业研究生调剂 +3 琪久. 2026-03-10 8/400 2026-03-11 10:02 by 琪久.
信息提示
请填处理意见