A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-6-21 12:34  /  13102 人查看  /  171 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个题也忒难了,大家都是新手啊!!!这个代码写了我3个小时,里面有很多注释的地方是重复重复试验的结果,还有写地方还是懵懵懂懂,不过还是按照楼主的要求实现了功能,我这个代码是裹脚布又长又臭,不过很适合向我这样的新手,就是把这个需求简单话,然后按照自己的意思一条一条写代码..斑竹给分啊!!= =!!
  1. /*
  2. 需求 :将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  3.             数组:  2   5    9    10   48     95   154     31  59    69
  4. 思路:首先使用遍历数组,然后使用冒泡排序按从小到大的顺序排列,
  5.            然后对数组各个元素进行判断,如果(这个数)%(这个数-1)==0,那么就不是素数,
  6.            最后使用for循环输出数字
  7. 步骤:
  8.     1,首先定义一个数组,使用for循环遍历数组,冒泡排序使它从小到大排序
  9.     2,然后找出元素中的素数,赋为0
  10.     3,然后使用for循环按照阶梯状打印数组
  11. */
  12. class Test12{
  13.        
  14.         public static void main(String[] args) {
  15.                
  16.         int []  arr = {2,5,9,10,48,95,154,31,59,69};
  17.         show(arr);//遍历数组的函数
  18.         sort(arr);//排列数组的方式,从小到大
  19.         prime(arr);//将数组中为素数的元素改变为0,打印输出
  20.         ladder(arr);//按照需求将改变后的数组元素呈梯形状打印出来
  21. }
  22.         //这是一个罗列数组的函数show
  23.         public static void show(int arr[]){
  24.                 System.out.println("遍历原数组的各个元素");
  25.                 for (int i = 0; i < arr.length; i++) {//i为小脚标,i<数组的长度,i每次执行完自加一次
  26.                         System.out.print(arr[i]+" ");//打印元素
  27.                 }
  28.                 System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
  29.         }
  30.         //冒泡排序从小到大的排序sort
  31.         public static void sort(int arr[]){
  32.                 System.out.println("从小到大排序的各个元素");
  33.                 for (int i = 0; i < arr.length; i++) {//遍历数组元素
  34.                         for (int j = 0; j < arr.length-i-1; j++) {//确定比较的次数,因为每次比较都会确定最小值所以-i-1               
  35.                                 if (arr[j]>arr[j+1]) {//arr[j]>arr[j+1]的时候我们要进行换位
  36.                                         int temp = arr[j];//用第三方变量temp来实现换位
  37.                                         arr[j]=arr[j+1];
  38.                                         arr[j+1]=temp;       
  39.                                 }
  40.                         }
  41.                         System.out.print(arr[i]+" ");//输出比较后的数组
  42.                 }
  43.                 System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
  44.         }
  45.         public static void prime(int arr[]){
  46.                 System.out.println("将数组中是素数的元素定义为0,并打印出改变后的数组");
  47.                 loop://loop是个标记
  48.                 for (int i = 0; i < arr.length; i++) {//首先遍历数组元素,就相当于取得每个元素的值
  49.                         for (int j = 2;j<arr[i]; j++) {//因为我们是要素数所以我们就让(arr里面的元素)%(这个元素-1的值),这里我们遍历这个元素-1的值.
  50.                                 if (arr[i]%j==0) {//设置判断语句如果arr[i]这个元素%这个元素的值-1(即j)等于0,我们就继续回到循环
  51.                                 System.out.print(" " + arr[i]);//打印数组的元素,为了保证让素数变成0之后能打印出所有的元素,即 0 0 9 10 0 48 0 69 95 154这种样式
  52.                                         continue loop;//if判断flase的时候跳出当前循环  
  53.                                 }
  54.                                 //System.out.print(" " + arr[i]);  
  55.                         }
  56.                         //System.out.print(" " + arr[i]);
  57.                         arr[i]=0;//将这个元素赋值为0
  58.                     System.out.print(" " + arr[i]);//打印元素
  59.                         //System.out.println();
  60.                 }
  61.                
  62.                 System.out.println();//我起到了可爱的换行作用,你们可以忽略我
  63.         //ladder(arr);
  64.         }
  65.         public static void ladder(int arr[]){
  66.                 //prime(arr);
  67.                 System.out.println("将改变后的数组元素按照梯形状打印 ");
  68.                 for (int i = 0; i < arr.length; i++) {//控制行数,即长度
  69.                         for (int j = 0; j < i; j++) {//控制列数,即高度
  70.                                 System.out.print(" ");
  71.                         }
  72.                         System.out.println(arr[i]);
  73.                         //System.out.println();
  74.                 }
  75.        
  76.         }
  77.        
  78. }
复制代码
回复 使用道具 举报
遍历原数组的各个元素
2 5 9 10 48 95 154 31 59 69
从小到大排序的各个元素
2 5 9 10 31 48 59 69 95 154
将数组中是素数的元素定义为0,并打印出改变后的数组
0 0 9 10 0 48 0 69 95 154
将改变后的数组元素按照梯形状打印
0
0
  9
   10
    0
     48
      0
       69
        95
         154

运行结果!!!!




评分

参与人数 1技术分 +5 收起 理由
夜默 + 5 黑马学员,需要你这种迎难而上的精神....

查看全部评分

回复 使用道具 举报
  1. /*
  2. * 需求:打印输出一百以内的素数的累加和
  3. 思路:首先按照素数的特点,打印素数然后相加求和
  4. 步骤:
  5. 1,遍历1-100的数
  6. 2,判断这个数是不是素数,是打印出来,用sum记录 sum+i的值
  7. 3,将这些素数相加求和
  8. * */
  9. public class Test13 {

  10. /**
  11. * @param args
  12. */
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. int sum=0;//定义个sum来记录素数的值
  16. loop://标记点
  17. for (int i = 2; i<=100; i++) {//遍历1-100之间的数.
  18. for (int j = 2; j <i; j++) {//每个数和这个数-1进行比较
  19. if (i%j==0) {//判断i%j是否为0,如果为0跳重新执行一次函数
  20. continue loop;
  21. }
  22. }
  23. System.out.print(i+" ");//打印素数
  24. sum+=i;//用sum记录sum+i的值
  25. }
  26. System.out.println();
  27. System.out.println("sum="+sum);
  28. }
  29. }
  30. 运行结果:<IMG border=0 alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=21509&size=300x300&key=13c83738012d6416&nocache=yes&type=fixnone" aid="attachimg_21509">
复制代码

12.jpg (20.12 KB, 下载次数: 0)

12.jpg

点评

值得鼓励,不过封顶五分..  发表于 2013-6-21 18:27
回复 使用道具 举报
最后一个杨辉三角的,在网络上看挺多的代码,不过涉及到二维数组,这个还不是很理解,如果群主有人写出来了,麻烦发一份给我!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马