| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 332 人关注过本帖
标题:函数使用 陷入死循环为什么 ?
只看楼主 加入收藏
朱鹏程
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2014-2-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
函数使用 陷入死循环为什么 ?
#include <stdio.h>
#include <stdlib.h>
#define N 30
void main()
{
    int x[30]={0},i,j=0,t=0;
    int y;
   for(j=0,i=0;j<30;j++)
     {  
        I: y=rand()%20;
        for(i=0;i<N;i++)
           if(x[i]==y)
           {
             goto I;//当随机值有与数组相同的值时就重新生成随机值 转到I:
           }
           x[j]=y;//赋值
         
          //j只能到18   陷入死循环  分析原因中......

   
     }
    printf("end");
 
}
想了好久都想不通
大神 你看哈 下标j 只能到18 不会增到19  陷入死循环 迷惑中。。。。。。
我感觉肯定的rand() 搞的鬼 但是有说不清它干嘛了  大神  。。 求解惑、!!!!???
嘿嘿嘿
搜索更多相关主题的帖子: include 
2014-03-02 13:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
呵呵  你想在30个数组里装20个数 而且还不带重复的 你觉得可能吗

DO IT YOURSELF !
2014-03-02 13:36
朱鹏程
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2014-2-13
收藏
得分:0 
回复 2楼 wp231957
追问 一下  请问  那个 rand()%20  为什么生成了 只生成了20个不重复的数啊??
2014-03-02 13:40
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
rand()%20  就是生成0-19 的范围数

你那个goto 不是限制重复的吗  那在0--19之间自然无法产生不重复的30个整数

DO IT YOURSELF !
2014-03-02 13:45
朱鹏程
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2014-2-13
收藏
得分:0 
回复 4楼 wp231957
   谢谢啦!!!!!
2014-03-02 14:05
快速回复:函数使用 陷入死循环为什么 ?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018682 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved