首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道计算机三级的c语言上机题~着急

2012-02-05 
一道计算机三级的c语言上机题~~着急 在线等题目要求:下列程序的功能:计算出自然数SIX和NINE,他们满足的条

一道计算机三级的c语言上机题~~着急 在线等
题目要求:
下列程序的功能:计算出自然数SIX和NINE,他们满足的条件是
SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX和NINE的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件out15.dat中。
其中S,I,X,N,E个代表一个十进制数字。

源程序如下:
#include   <stdio.h>
int   cnt,sum;
void   countValue()  
{
        int   i=100;
        while(1)
        {
        if(3*i%2==0&&3*i/2> =1000&&3*i/2 <=9999&&i/10%10==(3*i/2)/100%10&&
(3*i/2)/1000==(3*i/2)%100/10)
                        {cnt++;sum+=i+3*i/2;i++;}
        else   i++;
        if   (i> 999||3*i/2> 9999)   break;
        }
}
void   main()
{
        cnt=sum=0;
        countValue();
        printf( "满足条件的个数=%d\n ",cnt);
        printf( "满足条件所有的SIX与NINE的和=%d\n ",sum);
        writeDat();
        getchar();
}
writeDat()
{
        FILE   *fp;
                fp=fopen( "OUT15.DAT ", "w ");
        fprintf(fp, "%d\n%d\n ",cnt,sum);
        fclose(fp);
}


我看不懂函数countValue()
高手帮我解释一下   为什么函数countValue()要这样写?~~??

谢谢~~~


[解决办法]
SIX最小为100,最大值为999
NINE最小为1000,最大值为9999
i为SIX,我觉得这样说已经很明显了
要是还不理解我再继续,这种题目最好自己花时间想,锻炼逻辑思维
[解决办法]
3*i%2==0 保证3个SIX加起来是偶数
3*i/2> =1000 3个SIX加起来分为两个NINE 保证NINE大于1000
3*i/2 <=9999 3个SIX加起来分为两个NINE 保证NINE小于9999
i/10%10==(3*i/2)/100%10 保证SIX中的I与NINE中的I相等
(3*i/2)/1000==(3*i/2)%100/10 保证NINE中的两个N相等

热点排行