|
发表于 2003-7-1 08:31:51
|
显示全部楼层
我写的一个c的代码,问题没有完全解决,只得到了由庞涓的第一句话得到的结果,后面的删去工作没有完。
[code:1]
#include<stdio.h>
#include<stdlib.h>
typedef struct mul_list
{
int data;
struct mul_list *next;
}Node,*List;
void Init_List(List m,int e);
void Insert(List m,int e);
void Destroy_List(List m);
int Check(int m);
void Travel_List(List m);
void Delete(List m,int e);
int main()
{ int plus,x,x1,m;
for(plus=6;plus<197;plus++)
{
List head;
if((head=(List) malloc(sizeof(Node)))==NULL)
{
printf("Head malloc failure\n");
exit(0);
}
Init_List(head,plus);
for(x=2;x<=99;x++)
{
x1=plus-x;
if(x1<2||x1>99)
continue;
if(x>x1)
break;
m=x*x1;
if(Check(m))
Insert(head,m);
else
{
Destroy_List(head);
head=NULL;
break;
}
}
if(head)
{
Travel_List(head);
Destroy_List(head);
}
}
getchar();
}
void Init_List(List m,int e)
{
m->data=e;
m->next=NULL;
}
void Insert(List m,int e)
{
List body;
if((body=(List) malloc(sizeof(Node)))==NULL)
{
printf("Body malloc failure!!!\n");
exit(1);
}
body->data=e;
body->next=m->next;
m->next=body;
}
void Destroy_List(List m)
{
List prev;
while(m)
{
prev=m;
m=m->next;
free(prev);
}
}
[/code:1] |
|