鱼C论坛

 找回密码
 立即注册
查看: 2275|回复: 7

求何些代码运行不了呢??

[复制链接]
发表于 2014-3-18 23:13:56 | 显示全部楼层 |阅读模式
20鱼币
//加料版:实现让用户输入0< x <10以内的数,求1 ~ x^y的阶乘和^^
#include "stdio.h"
double power(double a, double b);   //求a^b
long fatorial(int q);               //阶乘函数
void main()
{
    int x, y, s, i;                 //x,y待输入,S是阶乘结果,I是循环次数
    printf("input x(<=10) & y(<=5) : \n");
    scanf("%d,%d", &x, &y);
    while( scanf("%d",&x) != 1 )    //排除数值以外的输入
    {
        printf("illegal input!!\npls input again!!\n");
        getchar();
    }
    for(i=1; i<=x; i++)             //进入求S的循环
    {
        s = s + power(i,y);         //调用POWER函数
    }
    printf("%ld\n", s);
}
double power(double a, double b)    //定义幂运算函数
{
    double z, r;         
    int c;
    z = a;
    for(c=1; c<b; c++)
    {
        z *= a;
        r = factorial(z);           //调用阶乘函数
    }
    return r;
}
long factorial(int q)               //定义阶乘函数
{
    long v = 1;
    int j;
    for( j=1; j<=q; j++)
    {
        v *= j;
    }
    return v;
}

最佳答案

查看完整内容

给你改了一下,你算不对 是因为超范围了 double power(double a, double b); //求a^b double factorial(double q); //阶乘函数 int main() { int x, y, i; //x,y待输入,S是阶乘结果,I是循环次数 double s=0; printf("input x(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-18 23:13:57 | 显示全部楼层

给你改了一下,你算不对 是因为超范围了
double power(double a, double b);   //求a^b
            
double factorial(double q);  //阶乘函数
int main()
{
        int x, y,  i;                 //x,y待输入,S是阶乘结果,I是循环次数
        double s=0;
        printf("input x(<=10) & y(<=5) : \n");
        scanf("%d,%d", &x, &y);
       
                s = power(x,y);         //调用POWER函数
                s=factorial(s);
       
        printf("%lf\n", s);
        system("pause");
        return 0;
}
double power(double a, double b)    //定义幂运算函数
{
        double z, r;         
        double c;
        z = a;
        for(c=1; c<b; c++)
        {
                z *= a;
        }
        return z;
}
double factorial(double q)               //定义阶乘函数
{
        double v = 1;
        int j;
        for( j=1; j<=q; j++)
        {
                v *= j;
        }
        return v;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-18 23:17:09 | 显示全部楼层
补充,这是0基础C语言第36讲那个例题的延伸版,编译无报错,但运行时老出不来结果,调试也没找到原因,求各位大神赐教{:7_166:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-19 09:11:15 | 显示全部楼层
#include "stdio.h"
long factorial(int q)               //定义阶乘函数
{
    long v = 1;
    int j;
    for( j=1; j<=q; j++)
    {
        v *= j;
    }
    return v;
}
double power(double a, double b)    //定义幂运算函数
{
    double z, r;         
    int c;
    z = a;
    for(c=1; c<b; c++)
    {
        z *= a;
        r = factorial(z);           //调用阶乘函数
    }
    return r;
}
void main()
{
    int x, y, s = 0, i;                 //x,y待输入,S是阶乘结果,I是循环次数
AG:
    printf("input x(<=10) & y(<=5) : \n");
    scanf("%d,%d", &x, &y);
        if (x == 1)
    {
        printf("illegal input!!\npls input again!!\n");
                goto AG;       
    }
    for(i=1; i<=x; i++)             //进入求S的循环
    {
        s = s + power(i,y);         //调用POWER函数
    }
    printf("%ld\n", s);
}
是要这样的结果吗?你的阶乘和power函数功能我没改,只是修改了main里面的逻辑!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-19 23:04:38 | 显示全部楼层
超级忍者龟 发表于 2014-3-19 09:11
#include "stdio.h"
long factorial(int q)               //定义阶乘函数
{

感谢回复{:7_174:}
貌似结果有出入哦,
当输入,2^3,结果正确=40321

但输入2^4,却输出错的结果2004189185 ?
正确应=20922789888001{:7_166:}

另外,为何要修改了main里面的逻辑才能运行呢?不明白,
大神能详解一下吗?

{:7_154:}期待-ing
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 09:07:51 | 显示全部楼层
欣欣celin 发表于 2014-3-19 23:04
感谢回复
貌似结果有出入哦,
当输入,2^3,结果正确=40321

那你要检查你的2个函数算法是不是正确!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-20 22:18:34 | 显示全部楼层
machimilk 发表于 2014-3-18 23:13
给你改了一下,你算不对 是因为超范围了
double power(double a, double b);   //求a^b
            

BINGO{:7_169:}
原来如此,又学到了,谢谢,谢谢{:7_174:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-20 22:20:29 | 显示全部楼层
超级忍者龟 发表于 2014-3-20 09:07
那你要检查你的2个函数算法是不是正确!

谢谢,问题搞掂了{:7_168:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 23:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表