把for(i=1i<=ni++)改成樱哪for(p=i=1i<=ni++)。
把脊判码e=e+(1/p)改成e=e+(1.0f/p)并提前到冲樱前面的}前面。
最好再将e=e+(1.0/p)改成e=e+(1.0f/p)
最好再把printf("e=%f",e)改成printf("e=%f\n",e)。
#include <stdio.h>#include <stdlib.h>
typedef struct Node
{
int data
struct Node *next
}node
node *input()
{
int i
node *p,*q,*r
q=(node *)malloc(sizeof(node))
q->next=NULL
p=q
printf("请输入不重复的数据(递增,以0结尾):\n")
scanf("%d",&i)
while(i!=0)
{
r=(node *)malloc(sizeof(node))
r->data=i
r->next=NULL
p->next=r
p=r
scanf("%d",&i)
fflush(stdin)
}
return(q)
}
void output(node *head)
{
node *p
p=head->next
while(p)
{
printf("%d\n",p->data)
p=p->next
}
}
void fun(node *ahead,node *bhead,node *chead)
{
node *p,*q,*r,*t
p=ahead->next
q=bhead->next
r=chead
while(p!=NULL&&q!=NULL)
{
if(p->data<q->data) p=p->next
else
{
if(p->data==q->data)
{
t=(node *)malloc(sizeof(node))
t->next=NULL
t->data=p->data
r->next=t
p=p->next
q=q->next
r=r->next
}
else
q=q->next
}
}
}
node * initialize(node *head)
{
head=(node *)malloc(sizeof(node))
head->next=NULL
return head
}
void main()
{
node *ahead,*bhead,*chead=NULL
printf("线性表A\n")
ahead=input()
printf("线性表B\n")
bhead=input()
chead=initialize(chead)
fun(ahead,bhead,chead)
printf("取交集后的数据:\n")
output(chead)
}
增加一迟枯伏个初始化chead的函数,另外码携你的败信fun函数中涉及c线性表的有逻辑错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)