c语言的问题,请解答下疑问,谢谢

来源:百度知道 编辑:UC知道 时间:2024/07/05 20:16:42
#include"string.h"

main(){

void sort(char *name[],int n);

void print(char *name[],int n);

static char *name[]={ "CHINA","AMERICA","AUSTRALIA",

"FRANCE","GERMAN"};

int n=5;

sort(name,n);

print(name,n);

}

void sort(char *name[],int n){

char *pt;

int i,j,k;

for(i=0;i<n-1;i++){

k=i;

for(j=i+1;j<n;j++)

if(strcmp(name[k],name[j])>0) k=j;

if(k!=i){

pt=name[i];

name[i]=name[k];

name[k]=pt;

}

}

}

void print(char *name[],int n){

int i;

for (i=0;i<n;i++) printf("%s\n",name[i]);

}

这里为什么不能把 void sort(c

这是为什么不能去掉,是因为这提示给编译系统,我=下要用这个函数
如果用方法二就不一样了,它用它的函数名已经做声明,所以省事多了;
方法1:
就是你这程序声明的那样;

方法2:
你想不用的话,可以啊,
把main()放到调用函数的下面就可以了,明了吗?不明在线问

同1楼

#include"string.h"
void sort(char *name[],int n);

void print(char *name[],int n);

main(){
static char *name[]={ "CHINA","AMERICA","AUSTRALIA",

"FRANCE","GERMAN"};

int n=5;
省略

把下面两个函数的定义放在 main 主函数之前,就可以去掉那两行。

在C中你所用到的函数必须提前跟系统打个招呼,只有这样系统才会根据你的函数原型做相应的正确性检查,一旦发现的函数调用有不对的地方,比如你的参数类型有误,系统就会在编译的时候提醒你有错!这是编译错误
但是 如果你不做函数声明编译系统就无法做正确性检查,那么如果得函数调用有问题的话,在编译的时候是发先不了的 问题只有在运行期间才会暴漏出来!这属于运行错误!
知道吗!!!运行错误时很危险的!!!!!!

再给你举个生活中常见的例子!
比如你是一名大学生 只有每个星期天才能回家
有一天了,你突然想在这个星期天让你妈给你买台发烧级的笔记本!!当然是很贵的!我相信你肯定是在周末以前就给你妈妈打个电话 告诉她你想买台本,希望她能把钱准备好!
你肯定不会星期天突然一回家就和你妈说你想买台本!而且立刻就要!不可能吧?你妈妈突然哪能给你准备那么多钱了!是吧!
呵呵呵呵 也不知道我举得这个例子你能明白否?

<