如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.imooc;
 
import java.util.Scanner;
 
public class WorkDemo {
    //显示提示信息的方法
    public void cue() {
        System.out.println("********************************************");
        System.out.println("           "+"1--插入数据");
        System.out.println("           "+"2--显示所有数据");
        System.out.println("           "+"3--在制定位置处插入数据");
        System.out.println("           "+"4--查询能被3整除的数据");
        System.out.println("           "+"0--退出");
        System.out.println("********************************************");
        System.out.println("请输入对应的数字进行操作:");   
    }
     
    // 1--插入数据的方法
    public int[] insertDate() {
        Scanner sc=new Scanner(System.in);
        int[] arr=new int[10];
        //输入1——9的9个数字
        for(int i=0;i<arr.length-1;i++) {
            System.out.println("请输入第"+(i+1)+"个数据:");
            arr[i]=sc.nextInt();
            if(arr[i]==0) {
                System.out.print("笨蛋,输入的数据不能为0!"+"     ");
                System.out.println("请重新输入第"+(i+1)+"个数据:");
                arr[i]=sc.nextInt();
            }
            }
        //显示输入的数组元素
        System.out.println("数组元素为:");
        for(int n=0;n<arr.length-1;n++) {
            System.out.print(arr[n]+"  ");
        }
        System.out.println();
        return arr;
    }
     
     
    //2--显示所有数据的方法
    public void showDate(int[] a,int length) {
        System.out.println("数组元素为:");
        for(int i=0;i<length;i++) {
            if(a[i]!=0) {
                System.out.print(a[i]+"   ");
            }else {
                System.out.print("  ");
            }  
        }
        System.out.println();
    }
     
     //3--在指定位置插入数据的方法
    public void insertAtArray(int[] a,int n,int k) {
        Scanner sc1=new Scanner(System.in);
        //int b=sc1.nextInt();
        System.out.println("请输入要插入的数据:");
        n=sc1.nextInt();
        System.out.println("请输入要插入数据的位置:");
        k=sc1.nextInt();
        for(int i=a.length-1;i>=k;i--) {
            a[i]=a[i-1];    
        }
        a[k-1]=n;
    }
      
      
    //4--查询能被3整除的数据的方法
    public void divThree(int[] a) {
        System.out.println("能被3整除的数据为:");
        for(int i=0;i<a.length;i++) {
            if(a[i]%3==0) {
                System.out.print(a[i]+"   ");
            }
        }
         
         
        for(int n=0;n<a.length;n++) {
      if(a[n]%3!=0) {
          System.out.print(" ");
      }
    
        System.out.println("没有能被3整除的数据!");
        System.out.println();
    }
      
     
     
 
    public static void main(String[] args) {
         // 定义一个数组
        int[] arr1=new int[10];
        boolean flag=true;
        //创建方法所在类的对象
        WorkDemo am=new WorkDemo();
        while(flag) {
            am.cue();
            Scanner sc2=new Scanner(System.in);
            int p=sc2.nextInt();
            switch(p) {
            case 1:
                //赋值并调用插入数据的方法insertDate
                arr1=am.insertDate();break;
                  
                //调用显示所有数据的方法
            case 2:
                am.showDate(arr1,arr1.length);break;
                  
                //调用在指定位置处插入数据的方法
            case 3:
                am.insertAtArray(arr1,10,9);
                am.showDate(arr1,arr1.length);
                break;
                  
                //调用能被3整除的方法
            case 4:
                am.divThree(arr1);break;            
                  
            case 0:
                System.out.println("退出");
                  
                flag=false;
                break;
                  
            default:
                System.out.println("0--4以外的数字无效");
                break;
            }   
        }
    }
 
}

在第4步,查询能被3整除的元素时,如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

    public void divThree(int[] a) {

        int s=0;

        System.out.print("数组中能被3整除的数为:");

        for(int i:a) {

            if(i%3==0) {

            System.out.print(i+"    ");

            s+=1;

        }

    }

    if(s==0) {

        System.out.print("数组元素均不能被3整除");

    }

    System.out.println();

}

我是用计数写的

好帮手慕阿满 2019-01-15 17:35:32

同学你好,应该是定义了字符串str和boolean值flag后,先循环判断数组中是否存在能被3整除的数,有能被3整除的数,str=str+a[i]+" ";并将flag赋值为true,在循环外判断flag,根据思路完成的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void divTree(int[] a) {
        boolean flag = false;
        String str = " ";
        System.out.println("能被3整除的数据为:");
        for(int i=0;i<a.length;i++) {
            if(a[i]%3==0&a[i]!=0) {
                str = str+a[i]+" ";
                flag = true;
            }
        }
        if (flag) {
            System.out.println(str);
        else {
            System.out.println("没有能被3整除的数据!");
        }
    }

祝:学习愉快~

好帮手慕阿满 2019-01-15 16:43:04

也可参考如下思路:

定义一个字符串str用于存放能被3整除的数据,设置boolean变量的值为false。使用for循环遍历数组元素,在循环中使用if语句判断是否能被3整除,如果满足if语句的条件,则设置boolean变量的值为true,并将能被3整除的数据用字符串拼接起来,如str=str+a[i] +” ”;  然后在循环外判断如果boolean为true则输出str的值,否则输出:数组中没有数据能被3整除。

祝:学习愉快~


  • 提问者 慕用6373601 #1
    不太明白,这么写好像也不对 public void divThree(int[] a) { boolean flag=true; System.out.println("能被3整除的数据为:"); if(flag) { for(int i=0;i<a.length;i++) { if(a[i]%3==0) { System.out.print(a[i]+" "); } } }else{ System.out.println("没有能被3整除的数据!"); } System.out.println(); }
    2019-01-15 17:08:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码