帮我看下这段C语言的错误

王朝知道·作者佚名  2009-10-31
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

今天刚学函数的调用,对于主函数给被调函数一个值不是很明白,所以看不出这个到底错在那了,请帮我讲解下,谢谢

#include<stdio.h>

void jisuan();

void main()

{

float r;

printf("please input a number:");

scanf("%f",&r);

jisuan(r);

}

void jisuan(float num)

{

float zhouchang,mianji;

zhouchang=2*3.14*num;

mianji=3.14*num*num;

printf("周长:%f\n",zhouchang);

printf("mianji:%f\n",mianji);

}

參考答案:

此处错误不是重复定义函数,是函数声明(declare)未指明形参的数据类型.

void jisuan(); /*这一行出错*/

改成 "void jisuan(float);"即可.

注意:"void jisuan(float);"中,

float后面可以随便接一个变量名字,变量的名字也可以省略不写,但记得写语句结尾的分号,此处不是函数定义,是声明.

此处的作用是通知编译器"下面要用到一个名字为jisuan的函数,它需要一个float型的参数",

编译器获得了它需要的信息之后,可能压根不会理会float后面接的变量名字是什么(因为在此处变量名对编译器并不重要.)

总结下:

正确的函数声明如下例:

int sum(int, int);

int sum(int x, int y);

两种声明方式都是正确的,例子中出现的x和y可以省略不写.注意函数的声明是一个语句,需要分号来终结.

函数的定义如下例:

int sum(int x, int y)

{

return x + y;

}

函数的定义以与第一个"{"相对应的"}"为终结符.

若函数在被调用之前被定义,则不必使用"声明".(见xjflyttp的写法.)

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航