标题:c的复杂说明怎么使用啊
只看楼主
cl_colin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-17
 问题点数:0 回复次数:10 
c的复杂说明怎么使用啊
初次发帖,望大家指教啊。这是一个选择操作的程序,编译时复杂说明通不过,帮忙看一下,谢谢各位啦:
#include<stdio.h>
#define N 5
。。。
void main()
{
int num[N],i,n; void *p;
void *((*p)(int *,int))[4]={max,min,pos,neg};
HEAD:printf("please input 5 numbers:\n");
for(i=0;i<N;i++) scanf("%d",num+i);
printf("How to deal with these numbers?\n");
printf("0.re-enter numbers\n");
printf("1.max number\n");
printf("2.min number\n");
printf("3.non-negative numbers\n");
printf("4.negative numbers\n");
printf("5.exit\n");
printf("Select(0-5)\n");
scanf("%d",&n);
if(!n) goto HEAD;
if(n>0&&n<5) *((*p)(*num,N))[n-1];
if(n==5) ;
}
说明:max,min,pos,neg是函数,想用指向函数的值针数组来控制执行哪一个函数,结果编译不对。。。
搜索更多相关主题的帖子: include numbers please 
2006-07-18 11:41
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 11:59
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 12:09
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
#include&lt;stdio.h&gt;
#define N 5
void max(int *a,int b)
{
printf("This is max\n");
}
void min(int *a,int b)
{
printf("This is min\n");
}
void pos(int *a,int b)
{
printf("This is pos\n");
}
void neg(int *a,int b)
{
printf("This is neg\n");
}
int main(void)
{
int num[N],i,n;
typedef void (*FUNPTR)(int *,int);
FUNPTR p[4]= {max,min,pos,neg};

while(true)
{
printf("please input 5 numbers:\n");
for(i=0;i<N;i++) scanf("%d",num+i);
printf("How to deal with these numbers?\n");
printf("0.re-enter numbers\n");
printf("1.max number\n");
printf("2.min number\n");
printf("3.non-negative numbers\n");
printf("4.negative numbers\n");
printf("5.exit\n");
printf("Select(0-5)\n");
scanf("%d",&n);
if(n>=0&&n<=5)break;
}

if(n>0&&n<5) p[n-1](num,N);//*((*p)(num,N))[n-1];
// if(n==5) ;

}

[此贴子已经被作者于2006-7-18 12:37:49编辑过]


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-07-18 12:34
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
咦,静静搞出问题来了,格式怎么乱了?

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-07-18 12:35
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 
关于复杂的声明和定义,一般还是不要用,但是看懂是必要的。楼主这句:

void *((*p)(int *,int))[4] //楼主认为是对的??

我的原则很简单:不做不喜欢的事!
2006-07-18 12:35
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
以下是引用lj_860603在2006-7-18 12:35:38的发言:
关于复杂的声明和定义,一般还是不要用,但是看懂是必要的。楼主这句:

void *((*p)(int *,int))[4] //楼主认为是对的??

void (*p[4])(int *,int);


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-07-18 12:56
cl_colin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-17
得分:0 
函数定义省了,不过函数可用指针来指向的不是吗?所以我就想用这个复杂说明来引用不同的函数...第一次用,确实不明白.
那如果我向实现这样的功能,根据输入的数字来调用不同的函数,请问怎么才能实现呢?
请各位大虾教我阿

Learing...
2006-07-18 16:56
cl_colin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-17
得分:0 
哦.......刚才没看到
谢谢大家赐教啊,小弟感激不尽!!!

Learing...
2006-07-18 16:59
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 17:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-78964-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.389148 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved