绝恋小说后卷犬犬:能通过编译 但是肯定有问题的一个程序

来源:百度文库 编辑:高校问答 时间:2024/04/28 06:48:14
生成5组随机数,每组6个数,且各不相等

public class Suiji{
public static void main(String[] args){
int[][] si=new int[5][6];
int i,j,k,m=0,s,q;
for(i=0;i<5;i++)
{for(j=0;j<6;)
{si[i][j]=1+(int)(48.*Math.random());
for(k=0;k<j;k++)
{if(si[i][j]==si[i][k]) m++;}
if(m==0) j++;} }
for(s=0;s<5;s++)
{for(q=0;q<6;q++)
System.out.println(i+" "+si[i][q]);}}}

 
 
 
问题主要是没有在每一次检测重复性之前让 m 归零。 以下是修改好的程序(所有变化都有注释):

class Suiji {
    public static void main( String[ ] args ) {
        int[ ][ ] si = new int[ 5 ][ 6 ];
        int i, j, k, m = 0, s, q;
        for ( i = 0; i < 5; i++ ) {
            for ( j = 0; j < 6; ) {
                si[ i ][ j ] = 1 + ( int ) ( 48. * Math.random( ) );
                m = 0; // 加了这行
                for ( k = 0; k < j; k++ )
                    if ( si[ i ][ j ] == si[ i ][ k ] )
                        m++;
                if ( m == 0 )
                    j++;
            }
        }
        for ( s = 0; s < 5; s++ ) {
            for ( q = 0; q < 6; q++ )
                System.out.print( si[ s ][ q ] + "\t" ); // 改了这行
            System.out.println( ); // 加了这行
        }
    }
}

我另外写了个同样是打印 5 组、每组 6 个不重复的随机数的小程序,你可以参考参考:

import java.util.*;

class Random {
    public static void main( String[ ] args ) {
        for ( int i = 0; i < 5; i++ ) {
            Set set = new HashSet( );  // 利用 Set 不保存重复元素的特性
            while ( set.size( ) < 6 )
                set.add( new Integer( ( int ) ( 1 + 48 * Math.random( ) ) ) );
            System.out.println( set ); // 打印容器类的内容是非常方便的事
        }
    }
}
 
 
 

没有初始化random种子