| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1679 人关注过本帖
标题:新手求助 急!急!!急!!!
只看楼主 加入收藏
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
强人  楼上

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2008-03-07 09:33
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
下面这个干什么的?

  while(1)
  {  i++;
     if((test=(rand()%79+a[0]))==a[i])
         break;
     if(i>=6)
         i=0;
  }

—>〉Sun〈<—
2008-03-07 18:24
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 


发现一个问题:for循环访问了一个数组之外的元素

[bo]以下是引用 [un]xianshizhe111[/un] 在 2008-3-7 00:58 的发言:[/bo]

#include "stdio.h"
#include<stdlib.h>
#include<time.h>
int main()
{
  int a[6]={10,20,33,4,44,88};
  int i=0,test;
  int stime;
  long ltime;
  ltime=time(NULL);
  stime=(unsigned int )ltime;
  
  srand(stime);
  while(1)
  {  i++;
     if((test=(rand()%79+a[0]))==a[i])    // i 超出范围
         break;
     if(i>=6) i=0;
  }
  for(i=0;i<6;i++)
    if(test==a[i])
    {
      a[i]=a[i+1];   // 在i 为5 时 i + 1 == 6,这样就超出了数组的范围
      test=a[i];
    }
  for(i=0;i<5;i++)
     printf("%d ",a[i]);
  return 0;
}


[[it] 本帖最后由 cosdos 于 2008-3-9 23:46 编辑 [/it]]

—>〉Sun〈<—
2008-03-09 23:20
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
再考虑,考虑(如:超出之外,返回来再重新测试该做如何处理).
2008-03-09 23:33
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
while(1)
  {  i++;
     if((test=(rand()%79+a[0]))==a[i])
         break;
     if(i > 4)    // !
        i=0;
  }
  for(i=0;i<5;i++)   // 即 (6 - 1)
    if(test==a[i])
    {
      a[i]=a[i+1];
      test=a[i];
    }

—>〉Sun〈<—
2008-03-09 23:47
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
for(i = 0; (test=(rand() % 79 + a[0])) != a[i]; i = ( (i < 5) ? (i + 1) : 0) );

[[it] 本帖最后由 cosdos 于 2008-3-9 23:55 编辑 [/it]]

—>〉Sun〈<—
2008-03-09 23:51
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
int a[6]={10,20,33,4,44,88};
while(1)
  {  i++;
     if((test=(rand()%79+a[0]))==a[i])
         break;
     if(i>=500) i=0;
  }
2008-03-10 00:02
快速回复:新手求助 急!急!!急!!!
数据加载中...
 
   



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

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