其实就是提示你,你的返回类型是void但是你却在程序最后return 了,,,这样就矛盾了,,,如果你定义了int 但是没有return,会提示你,**must have return a value ,,,,
再就是了,,,你的程序里面有很多的错误,()错误,因该为[]表示下标运算符,再就是了,及时可以返回值,你return m[i]表示返回一个值,而非地址,或者拍好了了的,数组名,,,
再就是了你的冒泡排序存在问题,因该是
我给你修改了,,你看一下,
//#include
//#include
#include
//#include
//#include
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));
}
错误多了去了,数组下标表示使用方括号,圆括号表示的是函数:
把所有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);
}
e=(d(d-a)(d-b)(d-c))^(0.5);表达式有问题,不知道你要实现什么,C语言中'^'的意思是异或,你确定你要实现这个么?它只能对整数操作。
1楼正解