-1
我寫此程序帕斯卡 ,其要求用戶輸入兩個陣列和恆定的值,其爲K 程序木裏K的陣列。 然後保存在新的數組 的答案,並在新的數組做一些操作 此外< <工作做好 減法< <也行 但在多< <我想要求用戶輸入一個新的數組的問題,做Muti但仍然有問題。 ALSO 我想這些操作反覆進行,直到用戶按下退出< < <,因爲我不是完美的與帕斯卡爾我不能做這個選擇。小問題在帕斯卡爾,你能幫忙嗎?
我將不勝感激,如果你能幫助我
這是我的代碼
program BST6;
const maxN=100;maxM=100;
type mat=array[1..maxN,1..maxM]of integer;
var A,B,c:mat;
n,m,l,s,i,j,k:integer;
ch : char;
procedure readMat(var A:mat;var m,n:integer);
begin
for i:=1 to m do
for j:=1 to n do
begin
write('mat[',i,',',j,']=');
readln(A[i,j]);
end;
end;
procedure writeMat(A:mat;m,n:integer);
begin
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end;
function multK(A:mat;k:integer):mat;
begin
for i:=1 to n do
for j:=1 to m do
begin
B[i,j]:= K*A[i,j];
end;
multK:=B;
end;
function minus(A,B:mat):mat;
begin
for i:=1 to m do
for j:=1 to n do
C[i,j]:=A[i,j]-B[i,j];
minus:=C;
end;
function plus(A,B:mat):mat;
begin
for i:=1 to m do
for j:=1 to n do
C[i,j]:=A[i,j]+B[i,j];
plus:=C;
end;
function mult(A,B:mat;m,l,n:integer):mat;
begin
for i:=1 to m do
for j:=1 to n do
for k:=1 to l do
c[i,j]:=c[i,j]+A[i,k]*B[k,j];
mult:=C;
end;
begin
write('input m<=',maxM,'.. m=');readln(m);
write('input n<=',maxN,'.. n=');readln(n);
readMat(A,m,n);
writeln('input the const K');readln(k);
B:=multK(A,K);
writeln('The matrix A : ');
writeMat(A,m,n);
writeln('The matrix B=K*A : ');
writeMat(B,m,n);
writeln('choose the operation + , - or * ');
readln(ch);
case ch of
'+' : c:=plus(A,B);
'-' : c:=minus(A,B);
'*' : begin
writeln('input m<=',maxM,'input l<=',maxN);readln(m,l);readMat(A,m,l);
writeln('input l<=',maxN);readln(n);readMat(B,l,n);
c:=mult(A,B,m,l,n);
end;
end;
writeMat(c,m,n);
readln;
end.
首先,你有什麼問題?清楚說明。它是一個編譯錯誤還是某種運行時錯誤,在這兩種情況下具體是什麼?其次,你是否可以將這個縮減到更短,但仍然以相同的方式失敗?這不僅使任何人試圖幫助你更容易,但可能會幫助你看到問題。 – 2011-01-10 19:21:57
muli op中的問題。如果你能幫助我,我正在等你。 – user570285 2011-01-10 19:36:14