有几道能执行但执行结果不对的题目。
											这几个代码都能执行,但不知道为什么执行的结果却另人匪夷所思,应该是内存读写错了吧,我猜想是不是函数结束的时候所有定义的数的空间都被释放了,所以无法返回正确的值?那这国家二级机试考试也太……无语了……代码如下:(这是求所有2到100素数的和的代码:)搞错了,实在不好意思,因为问题积累的原因,一眼扫了过去,以为是2到100素数和,题目不是这样的。
原题目我找到了,是这样的:计算并输出high最大的10个素数之和。我的错……我的错……
 程序代码:
程序代码:# include <stdio.h>
# include <math.h>
int fun(int high)
{
    int sum=0, i, n=0, yes;
    while ((high>=2) && (n<=10))
    {
        yes = 1;
        for (i=0; i<high/2; i++)
            if(high%i == 0)
            {
                yes=0;
                break;
            }
        if(yes)
        {
            sum += high;
            n++;
        }
        high--;
    }
    return sum;
}
int main(void)
{
    int high, sum;
    printf("请输入high的值:");
    scanf("%d", &high);
    sum = fun(high);
    printf("%d", sum);
    return 0;
}计算一个通项式的累加和:
 程序代码:
程序代码:# include <stdio.h>
# include <math.h>
double fun(double x, int n)
{
    double sum=1, t=-1.0;
    int i;
    for (i=0; i<n; i++)
    {
        t *= (-1)*x/i;
        sum += t;
    }
    return sum;
}
int main(void)
{
    double x, sum;
    int n;
    printf("请输入x和n的值\n");
    printf("x = ");
    scanf("%lf", &x);
    printf("n = ");
    scanf("%d", &n);
    sum=fun(x, n);
    printf("结果是:%lf\n", sum);
    return 0;
}求一个排列组合数:
 程序代码:
程序代码:# include <stdio.h>
int fun(void)
{
    int i, j, k, sum=0;
   
    for (i=1; i<4; i++)
    {
        for (j=1; i<6; j++)
        {
            k = 8-i-j;
            if((k>=0) && (k<=6))
            {
                printf("红球:%d\n", i);
                printf("白球: %d\n", j);
                printf("黑球:%d\n", k);
                printf("\n");
            }
            sum++;
        }
    }
    return sum;        //返回的时候是不是sum的内存空间被释放所以赋值不了?
}
int main(void)
{
    int sum;
    sum = fun();
    printf("总共的组合数为:%d", sum);
    return 0;
}[ 本帖最后由 ai8343512 于 2011-8-28 15:40 编辑 ]

 
											





 
	    



