标题:求指点,程序运行时出错
只看楼主
青春dian光
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-11-30
结帖率:0
已结贴  问题点数:10 回复次数:10 
求指点,程序运行时出错
#include <stdio.h>
void main()
{
    float power(float x,int n);
    int n;
    float x,s;
    printf("请输入x和n的值,用于计算x的n次方(x,n)\n");
    scanf("%d%d",&x,&n);
    s=power(x,n);
    printf("%f的%d次方是%f\n",x,n,s);
}
float power (float x,int n)
{
    int i;
    float s=1;
    for (i=1;i<=n;i++)
        s*=x;
    return s;
}
搜索更多相关主题的帖子: include power 
2013-11-30 23:52
好男儿!
Rank: 2
来 自:陕西省
等 级:论坛游民
帖 子:29
专家分:52
注 册:2013-7-26
得分:2 
错误在于函数格式不正确,函数的声明应该在主函数之外,不能放在里边。
1.函数声明;
2.函数定义;
3.函数掉调用;
正确的方式有:1, 2, 3 (强烈建议)  或者1, 3, 2(不建议)
其他方式都是错误的,而且函数声明中的变量名可以缺省,但不建议缺省,C语言只会取得他的数据类型,而不关心名称,但是定义语句中一定不能缺省。
2013-12-01 00:57
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:2 
我该说什么?

额,你的 x定义的是 float型


[fly]存在即是合理[/fly]
2013-12-01 03:22
好男儿!
Rank: 2
来 自:陕西省
等 级:论坛游民
帖 子:29
专家分:52
注 册:2013-7-26
得分:0 
回复 3楼 azzbcc
底数float类型有错误吗?请指教
2013-12-01 09:09
青春dian光
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-11-30
得分:0 
我还是不知道怎么改
2013-12-01 10:30
℃Buffer
Rank: 2
等 级:论坛游民
帖 子:25
专家分:48
注 册:2013-2-26
得分:2 
建议你这么写
#include <stdio.h>
float power (float x,int n)
{
    int i;
    float s=1;
    for (i=1;i<=n;i++)
        s*=x;
    return s;
}
void main()
{
    int n;
    float x,s;
    printf("请输入x和n的值,用于计算x的n次方(x,n)\n");
    scanf("%d%d",&x,&n);
    s=power(x,n);
    printf("%f的%d次方是%f\n",x,n,s);
}
或者
#include <stdio.h>
float power (float x,int n);
void main()
{
    int n;
    float x,s;
    printf("请输入x和n的值,用于计算x的n次方(x,n)\n");
    scanf("%d%d",&x,&n);
    s=power(x,n);
    printf("%f的%d次方是%f\n",x,n,s);
}
float power (float x,int n)
{
    int i;
    float s=1;
    for (i=1;i<=n;i++)
        s*=x;
    return s;
}
你的问题是在使用前没有申明,申明不是放在main函数里
float不影响

2013-12-01 11:32
青春dian光
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-11-30
得分:0 
结果是这样的:
请输入x和n的值,用于计算x的n次方(x,n)
2
3
0.000000的3次方是0.000000
这是怎么回事,哪个地方写错了,求指点
2013-12-01 12:11
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
得分:2 
scanf("%d%d",&x,&n);这里x是float ,应该用%f%d

好好学习,天天想上
2013-12-01 12:42
青春dian光
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-11-30
得分:0 
还是同样的结果
请输入x和n的值,用于计算x的n次方(x,n)
 2
 3
 0.000000的3次方是0.000000
2013-12-01 13:21
℃Buffer
Rank: 2
等 级:论坛游民
帖 子:25
专家分:48
注 册:2013-2-26
得分:0 
建议你这么写
#include <stdio.h>
float power (float x,int n)
{
    int i;
    float s=1;
    for (i=1;i<=n;i++)
        s*=x;
    return s;
}
void main()
{
    int n;
    float x,s;
    printf("请输入x和n的值,用于计算x的n次方(x,n)\n");
    scanf("%f,%d",&x,&n);
    s=power(x,n);
    printf("%f的%d次方是%f\n",x,n,s);
}
或者
#include <stdio.h>
float power (float x,int n);
void main()
{
    int n;
    float x,s;
    printf("请输入x和n的值,用于计算x的n次方(x,n)\n");
    scanf("%f,%d",&x,&n);
    s=power(x,n);
    printf("%f的%d次方是%f\n",x,n,s);
}
float power (float x,int n)
{
    int i;
    float s=1;
    for (i=1;i<=n;i++)
        s*=x;
    return s;
}
你的问题是在使用前没有申明,申明不是放在main函数里
float不影响
scanf输入可以用逗号隔开scanf("%f,%d",&x,&n);
输入时这样输入2,3

2013-12-01 15:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424485-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.166161 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved