大大可以教我..這是相加的程式碼要怎改相乘押
因為我改出來之後..答案都錯誤
所以拜託大大教一下囉 #include
#include #define DUMMY -1 class Ary_padd
{
public:
void output_P(int [],int );
void Padd(int [] ,int [] ,int [] );
char compare(int , int );
}; void Ary_padd::Padd(int a[] , int b[], int c[])
{
int p,q,r,m,n;
char result; m = a[1]; n = b[1];
p = q = r = 2; while ( (p <= 2*m) && (q <= 2*n) )
{
result = compare ( a[p],b[q] );
switch ( result )
{
case '=' :
c[r 1] = a[p 1] b[q 1];
if ( c[r 1] != 0 )
{
c[r] = a[p];
r =2;
}
p =2; q =2;
break;
case '>' :
c[r 1] = a[p 1];
c[r] = a[p];
p =2; r = 2;
break;
case '<' :
c[r 1] = b[q 1];
c[r] = b[q];
q =2; r = 2;
break;
}
}
while ( p <= 2*m ) {
c[r 1] = a[p 1];
c[r] = a[p];
p =2; r =2;
}
while ( q <= 2*n ) {
c[r 1] = b[q 1];
c[r] = b[q];
q =2; r =2;
}
c[1] = r/2 - 1;
} char Ary_padd::compare( int x, int y)
{
if ( x == y )
return '=';
else if ( x > y )
return '>';
else
return '<';
} void Ary_padd::output_P(int p[],int n)
{
int i; cout << "(";
for ( i = 1; i <= n; i ) {
cout.width(3);
cout << p[i];
}
cout << " )";
} void main()
{ Ary_padd obj; int A[] = { DUMMY,3,4,5,2,3,0,2 };
int B[] = { DUMMY,3,3,6,2,2,0,1 };
int C[13] ={ DUMMY };
obj.Padd( A, B, C ); cout << "\nA = ";
obj.output_P(A, A[1]*2 1);
cout << "\nB = ";
obj.output_P(B, B[1]*2 1);
cout << "\nC = ";
obj.output_P(C, C[1]*2 1);
}