C语言编程 调试!!

时间: 发布人:vxyty

C语言编程 调试!!

已解决问题

谷歌vxyty用户在提交了关于“**和国之辉C语言编程 调试!!”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-01-03T02:07:51。n调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:
⑴2个数的和。
⑵2个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
main()
{inta,b,c,(*p)();
scanf("%d,%d",&a,&b);
p=sum;
*p(a,b,c);
p=swap;
*p(a,b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
sum(inta,intb,intc)
{c=a+b;}
swap(inta;intb)
{intt;
t=a;
a=b;
b=t;
}
调试程序时注意参数传递的是数值还是地址。希望大家能够帮助她。

详细问题描述及疑问:n调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:
⑴2个数的和。
⑵2个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
main()
{inta,b,c,(*p)();
scanf("%d,%d",&a,&b);
p=sum;
*p(a,b,c);
p=swap;
*p(a,b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
sum(inta,intb,intc)
{c=a+b;}
swap(inta;intb)
{intt;
t=a;
a=b;
b=t;
}
调试程序时注意参数传递的是数值还是地址。期待您的答案,千言万语,表达不了我的感激之情,我已铭记在心 !

希望以下的回答,能够帮助你。

第1个回答

用户名:io2018621  

intsum(int*a,int*b);
intswap(int*a,int*b);
voidmain()
{inta,b,c,(*p)(int*,int*);//函数指针定义时必须和其要指向函数的类型一样所以都得带两个形
scanf("%d,%d",&a,&b);
p=sum;
c=p(&a,&b);
p=swap;
p(&a,&b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
intsum(int*a,int*b)
{intc=*a+*b;
returnc;}
intswap(int*a,int*b)//函数形参中间是逗号
{intt;
t=*a;
*a=*b;
*b=t;
return1;
}