1.程序设计思想
(1) 创建一个函数,在函数中定义一个数组,用来存放取到的各个数
(2) 输入一个正整数
(3) 若输入的正整数正确,执行循环,在循环里将num%10赋值给a,将a存放在数组中,并使下标加1,sum=sum+a,num=num/10。
(4) 输出sum和依次取到的数
(5) 利用for循环,依次将取到的位倒序输出。
(6) 在主函数中定义一个对象,调用qushu函数
2.程序流程图
3.源程序代码
//信1605-1 20163690 李静 import java.util.Scanner; public class Number { int count=0,sum=0,a,num; public static void main(String[] args) { Number N= new Number();//定义一个对象 N.qushu();//调用qushu函数 } public void qushu() { int []M=new int[10];//定义一个数组用来存放取到的位数 Scanner input=new Scanner(System.in); System.out.println("输入一个正整数:");//输入number num=input.nextInt(); while(num!=0)//当输入的数不为0时,执行循环 { a=num%10;//a表示num%10取到的值 M[count]=a;//count用来表示数组的下标 count=count+1; System.out.print(a+" "); sum=sum+a; num=num/10; } System.out.print(" "); System.out.println(count+"位数字");//输出num是几位数字 System.out.println(sum); for(int i=count-1;i>=0;i--)//通过循环依次将取到的位倒序输出 { System.out.print(M[i]+" "); } } }
4.结果截图
5.实验总结
这次作业应该在课堂20分钟内完成,一开始看到程序就开始编程,并没有理清程序思路,在编的过程中无从下手。在以后的编程学习中当不清楚怎么编写时,学会用伪代码处理。做这道题时,对调用方法不太清楚,以及当有多个类时,如何在一个类中引用另一个类,对这种并不太熟悉,导致这道题不会做。题目中并没有规定输入几位数,所以判断当num!=0时才执行循环。