[问题] 函数

楼主: gauss760220 (找寻无脸华)   2014-08-16 05:23:32
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
C
问题(Question):
无法算出幂次方
预期的正确结果(Expected Output):可算出x的y次方
错误结果(Wrong Output):不管怎么输入x、y,pow(x,y)均显示为零
程式码(Code):(请善用置底文网页, 记得排版)
#include<stdio.h>
#include<math.h>
int main()
{
int x,y;
double z=function(x,y);
printf("请输入x值:");
scanf("%d",&x);
printf("\n");
printf("请输入y值:");
scanf("%d",&y);
printf("\n");
printf("x的y次方是%d\n",z);
system("pause");
return 0;
}
double function(int a,int b)
{
return pow(a,b);
}
作者: prismwu   2014-08-16 05:39:00
1.pow回传double 2.下面function没用到
作者: anfernee5000 (加油)   2014-08-16 09:12:00
将double function(int a,int b)放到int main上方
作者: putumaxally (putumaxally)   2014-08-16 10:24:00
x,y没给初始值就直接代入函数,算完才叫使用者输入...%d是显示整数,double要用%lf
作者: remizu (remizu)   2014-08-16 10:42:00
z是double 在printf时要用%f1. 函数(副程式)必须要在"使用之前"宣告其原型这样编译器才知道函数吃哪些 哪种型别的参数以及函数将传回什么型别的值2. int z=function(x,y);的话 是宣告int型别变量z并将其值初始化为function(x,y);的传回值因此在这行时就已经执行function(x,y); 才能知道其传回值当然 作为参数的x, y必须已经是有效内容要宣告其原型 但定义可以放在主程式之后 甚至是其他档案
作者: carylorrk (carylorrk)   2014-08-16 17:50:00
换本书吧...XD
作者: uranusjr (←這人是超級笨蛋)   2014-08-16 18:23:00
推楼上, 请换书
作者: kenn2001 (kenn )   2014-08-19 12:10:00
printf("x的y次方是%d\n",z); %d?

Links booklink

Contact Us: admin [ a t ] ucptt.com