本帖最后由 菠菜树 于 2015-2-28 17:44 编辑
今天看见一个题目,要求创建一个int数组,随机生成20个值,要求20个值不重复,不允许调用系统函数
小弟写的代码如下:
- class Btshuzu{
- public static void main(String [] args){
- int shuzu[]=new int[20];
- //声明一个int数组来存放生成的20个随机数
- int geshu=0;
- //声明一个int变量geshu存放当前数组中合格随机数元素个数
- int yuansu;
- //声明一个int变量yuansu临时存放每次生成的随机数
- boolean chongfu=false;
- //声明一个boolean变量chongfu表示当前生成元素是否与数组中已存放元素相同
- do{
- yuansu=(int)(Math.random()*99+1);
- //随机生成一个1~100的整数
- for(int i=0;i<geshu;i++){
- if(shuzu[i]==yuansu){
- //将生成的元素与数组中已存放元素比较,如果相等
- chongfu=true;
- //则值重复,将chongfu重新复制为true,并退出这个对比循环
- break;
- }
- }
- if(!chongfu){
- shuzu[geshu]=yuansu;
- //如果不重复,则将yuansu存放在数组中,同时geshu++
- geshu++;
- }
- }while(geshu<20); //当存放的元素个数小于20继续进入循环
- for(int i=0;i<geshu;i++){
- System.out.println(("第"+(i+1)+"个元素是:"+shuzu[i]+""));
- //依次输出存放的二十个元素至
- }
- }
- }
复制代码 使用javac编译不提示错误,运行无响应!麻烦大家有空的话帮忙找找原因,我想半天没想出来。
非常谢谢!
|
|