初学java(一)

    xiaoxiao2021-03-25  103

    1.编写程序输出200以内所有奇数,要求每行输出10个数字:

    源代码:Odd.java public class Odd{ public static void main(String[]args){  int m = 0;  System.out.println("200以内的奇数依次为:\n");  for(int i = 0; i < 200; i++){  if (i % 2 != 0)//判断是否为奇数  {  System.out.print(i+"\t");  m++;  }  if(m % 10 == 0)//实现10个数字换行  System.out.println();         } } }  

    运行结果:

    有一个问题:为什么行间距这么大呢?

    2.使用字母打印正三角形

    思想:是有通过键盘输入用户想打印的三角形行数,需要使用Scanner类;要求输出字母,需要强制类型转换,将字母的ASCII值与数字相加后在转为char类型

    源代码:RegularTriangle.java

    import java.util.Scanner; public class RegularTriangle{ public static void main(String[] args) { System.out.print("请输入该三角形的行数:\n"); Scanner input = new Scanner(System.in); int num = input.nextInt();//由键盘输入数字 for(int i = 0; i < num; i++) { for(int j = 0; j < num-i+1; j++)//打印三角形每行该有的空格 System.out.print(" "); for(int j = 0; j < 2*i+1; j++)//用字母打印三角形 System.out.print((char)('A'+i)+" "); System.out.println(" "); } } }

    运行结果:

    3.输出三角形状的乘法九九表

    思想:通过双重循环实现 源代码:MultiplicationTable.java public class MultiplicationTable{ public static void main(String[] args){ for(int i=1;i<=9;i++) for (int j=1;j<=i;j++) { int m=i*j; System.out.print(i+"×"+j+"="+m+" "); if(i==j) System.out.println(); } } } 运行结果:

    4.输入一个五位数求和

    源代码:Nums.java //输入五位整数,输出各个位数之和 public class Nums { public static void main(String[]args){ int m,i,sum = 0;//n为所需求和的五位数 int n = 12345,q = 10000; for(i = 5; i > 0; i--){ m = n / q; sum = m + sum; n = n % q; q = q / 10; } System.out.println("该五位数各个位上的和为"+sum); } } /* public class Nums { public static void main(String []args){ int data = 12345; int i,sum = 0,temp,p = 10; for(i = 5; i > 0; i--){ //i=5 4 temp = data % p; // temp=5 sum += temp; //sum=5 data /= p; // data=1234 } System.out.println("该五位数各个位上的和为"+sum); } } */ 运行结果:

    5.猜数游戏

            思想:该实验需要生成随机数[0,100),从博客园搜索到java中随机数的用法,大致有三种:

     通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数final long l = System.currentTimeMillis(); 获取int类型的整数,上面结果需要转行成int类型即可。final long l = System.currentTimeMillis(); final int i = (int)( l % 100 );通过Math.random()返回一个[0,1)的double值,使用方法如下:final double d = Math.random();获取int类型的整数,上面结果需要转行成int类型即可。final double d = Math.random(); final int i = (int)(d*100); //或者可以直接如下; final int i = (int)(Math.random()*100);通过Random类来产生一个随机数,创建Random对象,通过Random对象获取随机数import java.util.Random; Random random = new Random();//默认构造方法 Random random = new Random(1000);//制定种子数字 int i = random.nextInt(100);   源程序:Ran.java import java.util.Random; import java.util.Scanner; public class Ran{ public static void main(String[] args) { System.out.println("这是一个猜字游戏!"); //使用Math.random()方法 //int num = (int)(Math.random()*100); /* 使用Random类 Random random = new Random(); int num = random.nextInt(100); */ // System.currentTimeMillis() long 型 final int num = (int)( System.currentTimeMillis() % 100 ); Scanner input = new Scanner(System.in); int guessNum = input.nextInt(); if( guessNum > 100 || num < 0 ) { System.out.println("你所输入的数字不在范围内!"); } while( guessNum != num ){ if( guessNum > num ){ System.out.println("你的数字猜大了!"); }else if( guessNum < num ){ System.out.println("你的数字猜小了!"); }guessNum = input.nextInt(); //定义一个变量存放输入的数字与随机数的差值 int d = Math.abs( guessNum - num ); System.out.println("你所猜的数字与随机数之间的差为"+d); } System.out.println("恭喜通关!"); } } 运行结果:

    当然猜数游戏不需要加这么明显的提示啦!我只是想试着用一下求绝对值!

    6.冒泡排序和选择排序

    思想:都是双重循环,冒泡法按趟比较,将相邻两数的大数往后换,直到将最大的数字调到最后,再开始第二趟排序,等等;选择排序定下一个哨兵,从第一个位置开始,依次和后面的数字比较,将较小数移到第一个位置,接着给第二位置选择第二小的数字。这两者的区别在于循环条件的不同,需多加区分!

    源代码:Sort.java

    import java.util.Arrays; public class Sort { //冒泡排序 public static void bubbleSort(int[]arr) { System.out.println("冒泡排序分步序列:"); for(int i = 0 ; i < arr.length-1; i++) { for(int j = 0 ; j < arr.length-1-i; j++) { if(arr[j] > arr[j+1]) { printArr(arr); int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } //选择排序 public static void selectSort(int[]arr) { System.out.println("选择排序分步序列:"); for(int i = 0 ; i < arr.length-1 ; i++) { for(int j = i + 1 ; j < arr.length ; j++) { if(arr[i] > arr[j]) { printArr(arr); int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } //输出数组 public static void printArr(int[]arr) { for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } System.out.println(); } //主方法 public static void main(String[]args1) { //定义一个数组 int[]arr = {3,4,2,7,1,9}; bubbleSort(arr); printArr(arr); int[]a={3,6,1,3,0,4,3}; selectSort(a); printArr(a); } }

    运行结果:

    实验思考:本次实验的算法曾经都用过,新的知识就是java中Scanner,Random类的使用。

    注:随机数方法查看至博客园http://www.cnblogs.com/skywang12345/p/3341423.html

       

    转载请注明原文地址: https://ju.6miu.com/read-25160.html

    最新回复(0)