思路:
正确代码:
import java.util.Arrays; import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int grid[][]=new int[7][4]; int a=sc.nextInt(); int b=sc.nextInt(); for (int i = 0; i =10 && grid[1][2]==0) { grid[i][2]=0; } continue; } if (i==4) {//第五行 if (grid[1][1]==-1) { continue; } int mul=grid[1][1]*a;//十位与a相乘 grid[i]=right(mul, 1); } if (i==5) {//第六行 9473='-' if (grid[i][1]==-1) { continue; } grid[i][3]=-1; grid[i][2]=9473; grid[i][1]=9473; grid[i][0]=9473; } if (i==6) {//第七行 if (grid[i][1]==-1) { continue; } grid[i]=right(a*b, 0); } } //输出 for (int i = 0; i <7; i++) { if (i==4 && grid[1][1]==-1) {//输出到第五行时,如果b的十位没有数,则结束输出 break; } for (int j = 0; j =0; i--,m--) { row[i]=Integer.parseInt(strN.charAt(m)+""); } return row; } }
--------------------------------
题目说以竖式运算格式输出,题目中的例子格式明显不对。应该是这样的
我觉得下图右边的才对。
输出上图右边结果的代码如下:
import java.util.Arrays; import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int grid[][]=new int[7][4]; int a=sc.nextInt(); int b=sc.nextInt(); for (int i = 0; i =10 && grid[1][3]==0) { grid[i][2]=0; } continue; } if (i==4) {//第五行 if (grid[1][2]==-1) { continue; } int mul=grid[1][2]*a;//十位与a相乘 grid[i]=right(mul, 1); } if (i==5) {//第六行 9473='-' if (grid[i][2]==-1) { continue; } Arrays.fill(grid[i], 9473); } if (i==6) {//第七行 if (grid[i][2]==-1) { continue; } grid[i]=right(a*b, 0); } } //输出 for (int i = 0; i <7; i++) { if (i==4 && grid[1][2]==-1) {//输出到第五行时,如果b的十位没有数,则结束输出 break; } for (int j = 0; j =0; i--,m--) { row[i]=Integer.parseInt(strN.charAt(m)+""); } return row; } }
还有一种更简便的方法。System.out.printf() 可以使输出右对齐,可以设置偏移的位数,十分强大。
import java.util.Scanner; public class 测试 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt(); System.out.printf("%4d\n",a); System.out.printf("%s%2d\n","×",b); System.out.println("━━━"); if (a>=10 && b%10==0) {//第四行 System.out.printf("%4s\n","00"); }else { System.out.printf("%4d\n",a*(b%10)); } if (b>=10) {//第五行 System.out.printf("%3d\n",a*(b/10)); System.out.println("━━━");//第六行 System.out.printf("%4d\n",a*b);//第七行 } } }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:466 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:648 |
1025题解浏览:796 |
用筛法求之N内的素数。 (C语言代码)浏览:595 |
复数求和 (C语言代码)浏览:994 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2248 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:660 |
C语言训练-字符串正反连接 (C语言代码)浏览:653 |
校门外的树 (C语言代码)浏览:634 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:528 |