我一直在做帕斯卡的三角形作业,我已经得到了以我想要的方式打印三角形广告的全部代码。我们的老师要求我们在每一行显示该行内数字乘法的结果;例如:在第1行它应该打印1,在第2行打印1,在第3行打印2,在第4行打印9,依此类推...... 我写了类似计数器阵列来做这件事,但它似乎不起作用,在这里我留下你的代码,所以你可以看看它,看看你是否可以帮助我。顺便说一句,计数器数组是c []。非常感谢你!
import javax.swing.*;
import java.util.*;
public class class1_080414_Rodrigo {
public static void main(String[] args) {
// TODO Auto-generated method stub
String fila;
int f, a=0, b=0;
//
fila=JOptionPane.showInputDialog(null, "Until which line of the triangle would you like to prnt?");
f=Integer.parseInt(fila);
//
if (f<0){
JOptionPane.showMessageDialog (null, "You cannot type negative numbers.");
}
int triangulo [][] = new int[f][f];
int c [] = new int [f];
//
for (a=0;a<f;a++){
for (b=0; b<f; b++){
triangulo[a][b] = 0;
}
}
for (a=0;a<f;a++){
triangulo[a][0] = 1;
}
for (a=1;a<f;a++) {
for (b=1;b<f;b++) {
triangulo[a][b] = triangulo[a-1][b-1] + triangulo[a-1][b];
}
}
for (a=0;a<f;a++) {
for(b=0;b<=a;b++) {
if (b==0){
System.out.format("%"+(80-a)+"s", "");
}
c[a]=1;
c[a]=c[a]*triangulo[a][b];
System.out.print(triangulo[a][b]+" ");
}
System.out.print(" ="+c[a]);
System.out.println();
}
}
}
答案 0 :(得分:0)
你继续将c [a]重置为1.这应该来自b循环。
更改
for (a=0;a<f;a++) {
for(b=0;b<=a;b++) {
if (b==0){
System.out.format("%"+(80-a)+"s", "");
}
c[a]=1;
c[a]=c[a]*triangulo[a][b];
System.out.print(triangulo[a][b]+" ");
}
System.out.print(" ="+c[a]);
System.out.println();
}
到
for (a=0;a<f;a++) {
c[a]=1;
for(b=0;b<=a;b++) {
if (b==0){
System.out.format("%"+(80-a)+"s", "");
}
c[a]=c[a]*triangulo[a][b];
System.out.print(triangulo[a][b]+" ");
}
System.out.print(" ="+c[a]);
System.out.println();
}