C语言程序改错?

C语言程序改错?,第1张

第一,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。

望采纳!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7824545.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存