| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1646 人关注过本帖
标题:求助C语言程序,急!!!!!在线等!!!!
只看楼主 加入收藏
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
 问题点数:0 回复次数:23 
求助C语言程序,急!!!!!在线等!!!!
自然数列1,2,3……N,擦去其中一个数K,其余的数的平均值为A又B分之C((A*B+C)/B) 求K。

#include <stdio.h>
fun(n,a,b,c)
{int k;
for(k=0;k<n;k++)
{if(k==n*(n+1)/2-((n-1)*(a*b+c)/b))
return k;
}}
main()
{int a,b,c,k,n;
scanf("%d %d %d",&a,&b,&c);
for(n=1;;n++)
{
k=fun(n,a,b,c);
if(k)
break;
}
printf("%d",k);
}

那里出错了?求各位大大帮忙 课程设计 后天就要交了的,急啊!
搜索更多相关主题的帖子: C语言 fun int 
2008-07-01 17:06
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
结果错,还是编译错啊?

结果错就是你的算法有问题。。我就不管了。。

编译错就是你的代码有问题。。

在你的fun函数中,当if条件不满足的时候,函数好像没有返回值,
这时候主函数中的k=fun(n,a,b,c);好像有点问题。。
2008-07-01 17:17
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
得分:0 
是结果错了啊   主函数中FOR循环N不知道到范围 所以是当FUN中出现K时BREAK
但K貌似始终输出的都是A的值
2008-07-01 17:20
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
得分:0 
回复 2# himpo 的帖子
是结果错了啊   主函数中FOR循环N不知道到范围 所以是当FUN中出现K时BREAK
但K貌似始终输出的都是A的值
2008-07-01 17:22
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
你能通俗的解释一下
自然数列1,2,3……N,擦去其中一个数K,其余的数的平均值为A又B分之C((A*B+C)/B) 求K。


么?最好举个例子,我的理解能力又下降了。。
2008-07-01 17:25
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
得分:0 
回复 5# himpo 的帖子
1,2,3……69     A=35 B=17 C=7  算出来擦去的数就是7
2008-07-01 18:06
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int fun(n, a, b, c)
{
    int k, sum;

    for(k = 1; k < n; k++)
    {
        sum = ((n * (n + 1)) / 2 - k) / (n - 1);
        if( sum == (a * b + c) / b )
            return k;
    }
    return 0;
}

—>〉Sun〈<—
2008-07-01 18:09
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
得分:0 
回复 6# cosdos 的帖子
DIVID ERROR!
2008-07-01 18:12
misty0311
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-1
收藏
得分:0 
回复 7# cosdos 的帖子
还是不对的呀
2008-07-01 18:33
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/*
自然数列1,2,3……N,擦去其中一个数K,其余的数的平均值为A又B分之C((A*B+C)/B) 求K。
*/

#include <stdio.h>

int fun(int n, double a, double b, double c)
{
    int k;
    double sum;

    for(k = 1; k <= n; k++)
    {
        // printf("  - K = %d\n", k);
        
        sum =  (double)((n + 1) * n) / 2.0;
        sum -= k;
        sum /= n - 1;
        sum -= (a * b + c) / b;
        if(sum > -0.000001 && sum < 0.000001)
            return k;
    }
    return 0;
}

int main(void)
{
    double a, b, c;
    int n, k;
        
    scanf("%lf %lf %lf", &a, &b, &c);
    while(getchar() != '\n');
    for(n = 2; ;n++)
    {
        // printf("N = %d\n", n);
        k = fun(n, a, b, c);
        if(k != 0)
            break;
    }
    printf("\n%d\n", k);
    getchar();
    return 0;
}


35 17 7 测试通过

[[it] 本帖最后由 cosdos 于 2008-7-1 19:06 编辑 [/it]]

—>〉Sun〈<—
2008-07-01 18:59
快速回复:求助C语言程序,急!!!!!在线等!!!!
数据加载中...
 
   



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

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