首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

【初学者】如何用指向函数的指针数组调用函数

2013-09-05 
【菜鸟求助】怎么用指向函数的指针数组调用函数?求大神帮忙!!!代码如下:(链接时总是出错,不知道为什么)#incl

【菜鸟求助】怎么用指向函数的指针数组调用函数?
求大神帮忙!!!
代码如下:(链接时总是出错,不知道为什么)
#include<stdio.h>
#include<stdlib.h>
int max(int x,int y)
{
if(x>y)
return x;
else 
return y;
}
int min(int x,int y)
{
if(x>y)
return y;
else
    return x;
}
int add(int x,int y)
{
return x+y;
}
int sub(int x,int y)
{
return x-y;
}
int mul(int x,int y)
{
return x*y;
}
void mian()
{
    int(*p[5])(int,int)={max,min,add,sub,mul};
int x,y,i,t;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("________________Menu________________");
printf("1.求最大值\n");
printf("2.求最小值\n");
printf("3.输出两数之和\n");
printf("4.输出两数之差\n");
printf("5.输出两数之积\n");
printf("请选择操作1-5:");
scanf("%d",&i);
switch(i)
{
    case 1:t=(*p[0])(x,y);break;
case 2:t=(*p[1])(x,y);break;
case 3:t=(*p[2])(x,y);break;
case 4:t=(*p[3])(x,y);break;
case 5:t=(*p[4])(x,y);break;
default:printf("data error\n");break;
}
printf("%d",t);
}


#include "stdafx.h"

#include<stdio.h>
#include<stdlib.h>
int max(int x,int y)
{
if(x>y)
return x;
else 
return y;
}
int min(int x,int y)
{
if(x>y)
return y;
else
return x;
}
int add(int x,int y)
{
return x+y;
}
int sub(int x,int y)
{
return x-y;
}
int mul(int x,int y)
{
return x*y;
}
int _tmain(int argc, _TCHAR* argv[])
{
int(*p[5])(int,int)={max,min,add,sub,mul};
int x,y,i,t;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);


printf("________________Menu________________\n");
printf("1.求最大值\n");
printf("2.求最小值\n");
printf("3.输出两数之和\n");
printf("4.输出两数之差\n");
printf("5.输出两数之积\n");
printf("请选择操作1-5:");
scanf("%d",&i);
switch(i)
{
case 1:t=(*p[0])(x,y);break;
case 2:t=(*p[1])(x,y);break;
case 3:t=(*p[2])(x,y);break;
case 4:t=(*p[3])(x,y);break;
case 5:t=(*p[4])(x,y);break;
default:printf("data error\n");break;
}
printf("%d\n",t);
system("pause");
return 0;
}




[解决办法]
main函数是不是写错了。。。win是—_tmain()

用系统自动生成一个main你在用试试
[解决办法]

void mian()
// main 写成了mian  楼主多多注意啊!
//改成 ,
int main() 


[解决办法]
(*p[0])(x,y);
============
p前的*是可有可无的,一般地不要这个*
p[0](x,y);即可

热点排行
Bad Request.