我试图添加两个不同大小的多维数组。
我希望你理解我的代码变量是葡萄牙语。
Program NOTA_ALUNO;
Var
A,B,C: Array[1..100,1..100] Of Integer;
contadorHorizontal,contadorVertical: Integer;
valoresVertical_A,valoresHorizontal_A,mm,nn: Integer;
valoresVertical_B,valoresHorizontal_B: Integer;
Begin
Writeln('digite as dimensões das matrizes:');
Readln(valoresHorizontal_A,valoresVertical_A);
Writeln('digite os elementos da matriz A:');
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
Read(A[contadorHorizontal,contadorVertical]);
End;
Readln;
End;
Writeln('digite as dimensões das matrizes:');
Readln(valoresHorizontal_B,valoresVertical_B);
Writeln('digite os elementos da matriz B:');
For contadorHorizontal := 1 To valoresHorizontal_B Do
Begin
For contadorVertical := 1 To valoresVertical_B Do
Begin
Read(B[contadorHorizontal,contadorVertical]);
End;
Readln;
End;
这就是我所做的。如果数组A
的x轴的值是
大于数组B
,我取数组B
的数量并添加一个并用零填充缺失的空格。但这不起作用:
If (valoresHorizontal_A > valoresHorizontal_B) Then
nn := valoresHorizontal_B+1;
For contadorHorizontal := nn To valoresHorizontal_A Do
Begin
B[contadorHorizontal,contadorVertical] := 0;
End;
{calcular a soma de A + B}
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
C[contadorHorizontal,contadorVertical] :=
A[contadorHorizontal,contadorVertical] +
B[contadorHorizontal,contadorVertical];
End;
End;
{imprimir o resultado}
Writeln('O resultado da soma de A+B:');
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
Write(C[contadorHorizontal,contadorVertical],' ');
{deixar espaço entre números}
End;
Writeln; { quebra linha }
End;
Readln;
End.
答案 0 :(得分:0)
在您输入值之前,可以解决您的问题的方法是在开始时使用零填充数组。像这样:
For contadorHorizontal := 1 To 100 Do
Begin
For contadorVertical := 1 To 100 Do
Begin
A[contadorHorizontal,contadorVertical] := 0;
B[contadorHorizontal,contadorVertical] := 0;
End;
End;
删除此部分:
If (valoresHorizontal_A > valoresHorizontal_B) Then
nn := valoresHorizontal_B+1;
For contadorHorizontal := nn To valoresHorizontal_A Do
Begin
B[contadorHorizontal,contadorVertical] := 0;
End;