真题仿造的例1,这里面有个地方犯了个很严重的错误,以后要多注意一下,没想到会在这么简单地地方犯错误,以前太依赖调试,对一次把试题作对没有太严格的要求,看来这方面真的要引起注意了
void ArrayA(int A[],int m,int n)
{
int nTemp;
for (int i=m; i<m+n; i++)
{
nTemp = A[i];
for (int j=i-1; j>=0; --j)
{
if (A[j]>nTemp)
{
A[j+1] = A[j];
}
else
{
A[j+1] = nTemp;//这个地方自己写的时候是A【j】,死活没想明白为什么结果会出错,这是真真的不应该的,看了书上的答案才明白过来
break;
}
}
}
}
例2没有任何问题
void Difference(LNode *&pA,LNode* pB)
{
LNode* P = pA;
LNode* A = pA->pNext;
LNode* B = pB->pNext;
while (A!=NULL && B!=NULL)
{
if (A->nData < B->nData)
{
A=A->pNext;
P=P->pNext;
}
else if (A->nData > B->nData)
{
B = B->pNext;
}
else
{
P->pNext = A->pNext;
free(A);
A= P->pNext;
}
}
}
网友评论