已知,a,b,c,为实数,并且29a+30b+31c=3366,求a+b+c的值.

已知,a,b,c,为实数,并且29a+30b+31c=3366,求a+b+c的值

求以上能解算出(a+b+c)值的C语言代码

#include <stdio.h>

int main(int argc ,  char *argv[])
{
    int a , b, c;
    int sum = 3366;
    int i , j , k;
    int count = 0;

    for(a = 0; a < sum/29; a++ )
        for( b = 0; b < sum/30; b++ )
            for(c = 0; c < sum/31; c++)
                if((29*a+30*b+31*c) == sum)
                {
                    printf("29*%d+30*%d+31*%d=%d\n",a,b,c,sum);
                    count ++;
                }

    printf("共有%d个自然数解\n",count);


}

题目的a,b,c应该是自然数,否则会有无数个解

img

以上自然数的解
希望采纳

#include <stdio.h>


int main(int argc ,  char *argv[])
{
    float E = 0.001; //结果误差
    float NE = -200; //负数的计算范围 -107374176.0000000
    float PE = 1000; //整数的计算范围 107374176.000000
    float a = 0.0 , b = 0.0, c = 0.0;
    float sum = 3366.0;
    int count = 0 ;



    for(a = NE; a < PE; a += E )
        for( b = NE; b < PE; b += E )
            for(c = NE; c < PE; c += E)            
                if((29.0*a+30.0*b+31*c) > (sum - E) && (29.0*a+30.0*b+31.0*c) < (sum + E))
                {
                    printf("29*%f+30*%f+31*%f=%f\n",a,b,c,29.0*a+30.0*b+31*c);
                    count ++;
                }


    printf("共有%d个自然数解\n",count);


}

img