c语言term does not evaluate to a function

2024-12-14 16:16:19
推荐回答(4个)
回答1:

其实就是提示你,你的返回类型是void但是你却在程序最后return 了,,,这样就矛盾了,,,如果你定义了int 但是没有return,会提示你,**must have return a value ,,,,
再就是了,,,你的程序里面有很多的错误,()错误,因该为[]表示下标运算符,再就是了,及时可以返回值,你return m[i]表示返回一个值,而非地址,或者拍好了了的,数组名,,,
再就是了你的冒泡排序存在问题,因该是
我给你修改了,,你看一下,
//#include //为什么要加这么多的头文件,?好看?不适用,建议你看一下,每个头文件都包含那些关键字或函数
//#include //调用malloc时必须,否则会导致错误
#include
//#include
//#include // getch() 暂定作用,输入一个数但是不显示在屏幕上,可以这样测试 printf("%c",getch());
void proc(char* m,int num)
{
int i,j;
char c;
for(i=0;i
{
for(j=i+1;j
if(m[i]>m[j])
{ c=m[j]; // 不要拉上这个{,因为这个三部都属于if语句
m[j]=m[i];
m[i]=c;
}
}

}
void main()
{
char t[10];
gets(t); //对这里相对了,其职能输入9个,因为最后那个要作为'\0',
proc(t,9);
printf("\n%s",t);

}

返回情况

#include

char *proc(char* m,int num) // 返回值为指针类型
{
int i,j;
char c;
for(i=0;i
{
for(j=i+1;j
if(m[i]>m[j])
{ c=m[j];
m[j]=m[i];
m[i]=c;
}
}
return m;// m作为数组名返回,其实是一个指针,
}
void main()
{
char t[10];
gets(t);

printf("\n%s",proc(t,9));

}

回答2:

错误多了去了,数组下标表示使用方括号,圆括号表示的是函数:
把所有m(i)替换为m[i]才可以,另外有一行return是多余的
#include
#include
#include
#include
#include
void proc(char*m,int num)
{
int i,j;
char c;
for(i=1;i
for(j=i+1;j {
if(m[i]>m[j])
c=m[j];
m[j]=m[i];
m[i]=c;
}
}
void main()
{
char t[10];
gets(t);
proc(t,9);
printf("\n%s",t);

}

回答3:

e=(d(d-a)(d-b)(d-c))^(0.5);表达式有问题,不知道你要实现什么,C语言中'^'的意思是异或,你确定你要实现这个么?它只能对整数操作。

回答4:

1楼正解