
第一,min函数的形参a和b必须加上类型符。
第二,scanf两个%d之间不能有逗号。
int min(int a,int b)
{int c
c=a>b?b:a
return c}
void main()
{int x,y
printf("please input x&y:")
scanf("%d%d",&x,&y)
printf("%d",min(x,y))}
#include <stdio.h>
int main(void)
{
int flag, n
double eps, item, s
printf("Input eps:")
scanf("%lf", &eps)
flag = 1
s = 0
n = 1
do
{
item = 1.0 / n
s = s + flag * item
flag = -flag
n = n + 3
} while (item >= eps)
printf("s=%f\n", s)
return 0
}
解析:设置p,q两个标志,用于确定结点位置。while中的条件为p不空(即p没有到链表末尾)和p所指的结点数据不等于data,若两个条件都满足,p向下一个结点移动,q取代p原来的位置;若前一个条件满足,后一个条件不满足(即p所指的结点数据等于data),则跳出循环,此时p指向满足条件的结点,显然p不为空,故进入else,删除p所指结点需要两步,第一步是:q->next=p->next,即将q的下一个结点指向p的下一个结点(q的下一个结点原本是p,这样 *** 作相当于在链表中删除了p所指结点)。
第二歩是:free(p),即释放p所指结点。
故答案为:将q=p->next改为q->next=p->next。
望采纳!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)