不太明白你什么意思,可能想简单了
public class Xuan{ 
public static void main(String[] args){ 
int[] aa=new int[7];\\占用8个号码 
aa[0]=37; \\初始为37 
int d=7; \\设置最小号码 
int c =37; 
for (int i=0;i<7;i++)
 { 
  while(c=(int)(Math.random()*c))<d); \\取一个随机号码 
  aa[i]=c; \\aa[i]取值c 
  }
System.out.println("您所选的号码是:"+aa[0]+","+aa[1]+","+aa[2]+","+aa[3]+","+aa[4]+","+aa[5]+","+aa[6]); 
} } 

解决方案 »

  1.   

    我的有,他的没有,我的是用外循环控制,用c<d比较的,他的的确没有,我现在不知道我到底是哪里做错了,痛苦ing,而且这个题目是在循环中出的,要用循环解决
      

  2.   

    两个地方不懂:
    1。  int[] aa=new int[7];\\占用8个号码 
    不是7个号码吗?
    2。for (d=7;d<0;d--){ \\循环1 
    d<0 会有效果吗?是 d>0 把
    还有一些细节问题,比如如果一直c<d,
    还有是算法上的一点问题,i--和d++界限
    可能会有数组越界异常,也可能循环次数不够
    还有
    c=aa[i]; \\c也回到上次的值 
    也不用
    主要就是i和d的限制,别的都没什么,多用if看看
      

  3.   

    哇,我晕,d<0错了,应该是d>0,我太不仔细了~~~~~~~~55555555,谢谢samus
      

  4.   

    吾已调试,可以运行!
    public class Xuan

     public static void main(String[] args)
     { 
         int[] aa=new int[10];
         int d=7; //设置最小号码 
         int c =37;
     int i=0;
     int j=0;
     int k=0;
     int flag=0;
     while(k<7)
     {
      flag=0;
              c=(int)((Math.random())*c); 
              if (c==0)
              {
      c=c+(int)((Math.random())*36);
              }
      if(c>=7)
    {
      flag=1;
          }
                  
      for(j=0;j<k;j++)
        {
     if(aa[j]==c)
     {
    flag=0;
     }
            }
         if(flag==1)
     {
      aa[k]=c;
          k++;
     }
    }
     
     System.out.println("您所选的号码是:"+aa[0]+","+aa[1]+","+aa[2]+","+aa[3]+","+aa[4]+","+aa[5]+","+aa[6]);
     
     }
    }
      

  5.   

    多谢,如何给你分? albert1k,呵呵,感谢ing
      

  6.   

    My QQ 125017385, welcome the friends from CSDN.