C语言求助
题目:调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:⑴2个数的和;⑵2个数交换值。要求用函数指针调用这两个函数,结果在主函数中输出。#include...
题目:调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:
⑴ 2个数的和;
⑵ 2个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
#include "format.h"
void main()
{ int a,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(int a, int b, int c)
{ c=a+b;
}
swap(int a, int b)
{ int t;
t=a;a=b;b=t;
}
求方法!谢谢了! 展开
⑴ 2个数的和;
⑵ 2个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
#include "format.h"
void main()
{ int a,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(int a, int b, int c)
{ c=a+b;
}
swap(int a, int b)
{ int t;
t=a;a=b;b=t;
}
求方法!谢谢了! 展开
3个回答
展开全部
#include "format.h"
#include<stdio.h>
void main()
{ int a,b,c,(*p)(int,int);
void (*q)(int &,int &);
int sum(int a, int b);
void swap(int &a, int &b);
scanf("%d,%d",&a,&b);
p=sum;
c= (*p)(a,b);
q=swap;
(*q)(a,b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
int sum(int a, int b)
{
int c;
c=a+b;
return c;
}
void swap(int &a, int &b)
{ int t;
t=a;a=b;b=t;
}
#include<stdio.h>
void main()
{ int a,b,c,(*p)(int,int);
void (*q)(int &,int &);
int sum(int a, int b);
void swap(int &a, int &b);
scanf("%d,%d",&a,&b);
p=sum;
c= (*p)(a,b);
q=swap;
(*q)(a,b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
int sum(int a, int b)
{
int c;
c=a+b;
return c;
}
void swap(int &a, int &b)
{ int t;
t=a;a=b;b=t;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int sum(int a, int b, int *c)
{
*c=a+b;
return *c;
}
void swap(int *a, int *b)
{
int t=0;
t = *a;
*a = *b;
*b = t;
}
void main()
{
int a,b,c,(*p)(int ,int ,int *);
void (*p1)(int *, int *);
scanf("%d,%d",&a,&b);
p=sum;
p(a,b,&c);
p1=swap;
p1(&a,&b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
int sum(int a, int b, int *c)
{
*c=a+b;
return *c;
}
void swap(int *a, int *b)
{
int t=0;
t = *a;
*a = *b;
*b = t;
}
void main()
{
int a,b,c,(*p)(int ,int ,int *);
void (*p1)(int *, int *);
scanf("%d,%d",&a,&b);
p=sum;
p(a,b,&c);
p1=swap;
p1(&a,&b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
追问
“void (*p1)(int *, int *);”
不太明白。
追答
int a,b,c,(*p)(int ,int ,int *);
函数都是需要有返回值类型的, 上面这个是定义的是 返回值 为整型的 指向函数的指针;
void (*p1)(int *, int *);”
void 就是无返回值类型的指向函数的指针, void swap 函数是无返回值的,若要定义一个指向该函数的指针,则指针变量也需要声明成 void 无返回值类型
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询