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

一道计算机三级的c语言上机题解决思路

2012-03-15 
一道计算机三级的c语言上机题题目要求:下列程序的功能:计算出自然数SIX和NINE,他们满足的条件是SIX+SIX+SI

一道计算机三级的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+SIX+SIX=NINE+NINE
设SIX组成的数字为i,则得出条件:
1 3*i%2==0 三个数字的和是偶数
2 3*i/2> =1000 三个数字的和大于1000
3 3*i/2 <=9999 三个数字的和小雨9999
4 i/10%10==(3*i/2)/100%10 SIX中和I值和NINE中的I值必须相同
5 (3*i/2)/1000==(3*i/2)%100/10 NINE中的两个N的值必须相同

同时满足这5个条件用&&链接
[解决办法]
writeDat()未声明
[解决办法]
2 3*i/2> =1000 三个数字的和大于1000
3 3*i/2 <=9999 三个数字的和小雨9999
==========
应该是1000= <NINE <=9999

热点排行