一个非常简单的C程序 可是老出现错误 error: invalid conversion from `int (*)(int, int)' to `int (*)

1 #include"stdio.h"
2 int min(int a,int b){
3 if(a<b)return a;
4 else return b;
5 }
6 main(){
7 int (*pmin)();
8 int a,b,m;
9 pmin=min;
10 printf("please input two integer numbers:\n");
11 scanf("%d,%d",&a,&b);
12 m=(*pmin)(a,b);
13 printf("min=%d",m);
14 }
有高手能帮忙解释下这个错误时什么意思吗 应该如何改正啊
9: error: invalid conversion from `int (*)(int, int)' to `int (*)()'
12: error: too many arguments to function
14:2: warning: no newline at end of file
主要是第9行的错误
pmin=&min;改了也不行 不是那个问题 pmin定义的时候就指向函数了啊
是不是软件的事啊 我用的是CFREE5.0 没问题吧?

第7行要改成:int (*pmin)(int, int);

指针与变量不能直接赋值,只有(*q)才能和变量进行赋值,并且必须先给指针分配内存空间,所以直接把q=i编程(*q)=i是不行的。

#include

#include"stdlib.h"

int

main()

{

int

i,j,k;

int

*q;

q=(int*)malloc(sizeof(int));

scanf("%d

%d

%d",&i,&j,&k);

if(i>j)

{

if(i>k)

*q=i;

else

*q=k;

}

else

*q=j;

printf("%d",*q);

return

0;

system("pause");

}

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

参考资料来源:百度百科-c语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-20
您好,第七行您定义了一个指向[返回值是int,没有参数的函数]的指针,第九行却用它指向一个[返回值是int,有两个int型参数的函数],所以错了,应该把定义的那里写完整成int(*pint)(int,int);
第2个回答  2011-02-02

9: error: invalid conversion from `int (*)(int, int)' to `int (*)()'
12: error: too many arguments to function
这两段得综合意思是函数min的参数太多,无法转换成函数pmin

可你的代码在我机器上可以运行,没有这错误
第3个回答  推荐于2018-06-20
int (*pmin)();----------》int (*pmin)(int c,int d);
scanf("%d,%d",&a,&b);-------》scanf("%d",&a);
scanf("%d",&b);本回答被提问者和网友采纳
第4个回答  2018-06-18
把int (*pmin)();改成int (*pmin)(int,int);。