注册 登录
编程论坛 C语言论坛

求大神帮忙解决自定义函数的问题

aCprogrammer 发布于 2019-06-25 18:05, 2835 次点击
只有本站会员才能查看附件,请 登录
先说一下,不是我不打源代码上来,只是打源代码上来后提交时跳转不了……所以只能发文件了
问题:我想用自定义的powers()实现pow()函数,但是老是编译不成功,请大神赐教……
10 回复
#2
aCprogrammer2019-06-25 18:12
#include<stdio.h>
int main()
{
    double x=2.0;
    int y=3;
    powers(double ,int );//函数声明
    double result;
    result=power(x,y);//调用
    printf("%lf",result);
    return 0;
}
double powers(double a,int b)//定义
{
    double sum=1.0;
    int c=0;
    for(c;c<=b;c++)
    {
        sum=sum*a;
    }
    return sum;
}
算了,我在这里发源文件吧,便于观看

[此贴子已经被作者于2019-6-25 18:16编辑过]

#3
zbjzbj2019-06-25 18:21
int main()
{
    double x=2.0;
    int y=3;
    double powers(double ,int );//函数声明
    double result;
    result=powers(x,y);//调用
    printf("lf",result);
    return 0;
}

就这几行代码,自己编译一下能通过吗?还提交。
#4
rjsp2019-06-25 18:27
你遇到什么问题了?要贴出编译错误

#include <stdio.h>

int main( void )
{
    double powers(double,unsigned);
    double result = powers(2.0,3);
    printf("%lf",result);
    return 0;
}

double powers(double a,unsigned b)
{
    double sum=1.0;
    for(unsigned c=0; c!=b; ++c)
        sum *= a;
    return sum;
}
#5
aCprogrammer2019-06-25 21:03
我在vc6上编译显示出错
#6
rjsp2019-06-26 08:44
回复 5楼 aCprogrammer
满清都已经灭亡了,你还在跪拜VC++6.0?
即便你对VC++矢志不移,那下个VC++2019也好呀。

不过,我劝你还是用 MinGW 或 Clang。
之前,微软一直强调VC++支持C语言,它只是顺带了一个C++的C语言模式。
中途,微软曾说会在 VC++2012 其开始逐步支持C语言。
目前,这个部门早就裁撤了,暂时是别想了。

#7
aCprogrammer2019-06-26 13:09
回复 6楼 rjsp
vc2019有三十二位版的吗?我不懂这个
#8
rjsp2019-06-26 13:47
回复 7楼 aCprogrammer
不知道你这个“三十二位”指的是什么?
VC++ 这个IDE全系列都没有64bits版本,但VC++2010及之前支持XP,之后的不支持XP。
VC++2019 开始,生产的目标代码已经不支持32bits了。

如果你只是想让 4 楼的代码能在 VC++6.0 上编译通过,那么只要改
double powers(double a,unsigned b)
{
    double sum=1.0;
    for(unsigned c=0; c!=b; ++c)
        sum *= a;
    return sum;
}

double powers(double a,unsigned b)
{
    double sum=1.0;
    unsigned c;
    for(c=0; c!=b; ++c)
        sum *= a;
    return sum;
}
就行了。
#9
aCprogrammer2019-06-26 14:08
好的谢谢了
#10
znhygsd2019-06-26 16:39
VC++和其它编译器有什么不同?

double powers(double a,int b);
#include<stdio.h>
int main()
{
    double x=2.0;
  double result;
    int y=3;
  
    result=powers(x,y);//调用
    printf("%lf",result);
    return 0;
}
double powers(double a,int b)//定义
{
    double sum=1.0;
    int c=0;
    for(c;c<=b;c++)
    {
        sum=sum*a;
    }
    return sum;
}
#11
aCprogrammer2019-06-26 21:05
回复 10楼 znhygsd
编译顺序及其他一些细节定义有些不同吧
例如VC6的函数调用是从右到左而有些编译器不是
1