为什么总是运行错误????
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
struct linklist
{
int data;
struct linklist *next;
};
struct linklist* initlist() /* 初始化 */
{
struct linklist *head;
head=(struct linklist*)malloc(sizeof(struct linklist));
head->next=NULL;
return head;
}
void orderlist(struct linklist *head,int n,int sum[]) /* 在头结点后面插入n个结点,顺序 */
{
int i;
struct linklist *p;
for(i=1;i<=n;i++)
{
p=(struct linklist*)malloc(sizeof(struct linklist));
p->next=NULL;
p->next=head->next;
head->next=p;
}
for(i=0,p=head->next;i<n;i++)
{
p->data=sum[i];
p=p->next;
}
}
void checklist(struct linklist *head) /* 顺序遍历链表,并输出 */
{
struct linklist *p;
p=head->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void deletelist(struct linklist *head,int i,int len) //删除操作
{
struct linklist *p,*s;
int j;
if(i>1)
{
j=1;p=head->next;
while(j<i-1)
{
j++;
p=p->next;
}
for(j=0;j<len;j++)
{
s=p->next;
p->next=s->next;
free(s);
}
}
else
{
p=head;
for(j=0;j<len;j++)
{
s=p->next;
p->next=s->next;
free(s);
}
}
}
void unionlist(struct linklist *a,struct linklist *b,int j) //合并操作
{
int i=1;
struct linklist *pa,*pb,*p;
pb=b->next;
while(i<j-1)
{
i++;
pb=pb->next;
}
p=pb->next;
pb->next=a->next;
pa=a;
while(pa->next)
pa=pa->next;
pa->next=p;
}
int main()
{
int temp[10],sum[80],i,j,k,len,m=0,a,b,c;
scanf("输入i=%d,len=%d,j=%d;",&a,&b,&c);
struct linklist *heada,*headb;
char str1[200],str2[200];
scanf("A链表:");
gets(str1);
len=strlen(str1);
for(i=0;i<len;i++)
{
j=0;sum[m]=0;
if(isdigit(str1[i]))
{
while(isdigit(str1[i]))
temp[j++]=str1[i++]-'0';
for(k=0;k<j;k++)
sum[m]=sum[m]+temp[k]*pow(10,j-k-1);
m++;
}
}
heada=initlist();
orderlist(heada,m,sum);
deletelist(heada,a,b);
headb=initlist();
scanf("A链表:");
gets(str2);
len=strlen(str2);
m=0;
for(i=0;i<len;i++)
{
j=0;sum[m]=0;
if(isdigit(str2[i]))
{
while(isdigit(str2[i]))
temp[j++]=str2[i++]-'0';
for(k=0;k<j;k++)
sum[m]=sum[m]+temp[k]*pow(10,j-k-1);
m++;
}
}
orderlist(headb,m,sum);
unionlist(heada,headb,c);
checklist(headb);
return 0;
}
Problem C: 两个链表之间问题(线性表)Time Limit: 1000 Sec Memory Limit: 128 MB
Submit: 75 Solved: 37
[Submit][Status][Web Board]
Description
已知两个单链表A和B,其头指针分别为heada和headb,编写一个过程从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个元素之前。
Input
输入i=3,len=5,j=7;
A链表:3 5 1 6 3 4 7 5 72 34 5
B链表:5 2 3 5 7 8 5 4 6 8 4 6 9 10 23
Output
5 2 3 5 7 8 3 5 5 72 34 5 5 4 6 8 4 6 9 10 23
Sample Input
输入i=1,len=3,j=5;
A链表:13 5 14 62 3 43 71 5 72 34 5
B链表:5 20 3 53 7 81 5 42 6 8 4 6 9 10 23
Sample Output
5 20 3 53 62 3 43 71 5 72 34 5 7 81 5 42 6 8 4 6 9 10 23
题目网址是 http://acm.zjgsu.

