试题与答案

下列程序的功能是:设A,B,C为三个不为零的正整数,计算并输出下列不定方程组解的个数

题型:问答题

题目:

下列程序的功能是:设A,B,C为三个不为零的正整数,计算并输出下列不定方程组解的个数cnt以及满足此条件的所有A,B,C之和sum。不定方程组为:
A+B+C=13
A-C=5
请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。
[试题源程序]
#include<stdio.h>
void WriteDat();
int cnt,sum:
void countvalue()

void main()

cnt=sum=0:
countvalue();
printf("cnt=%d\n",cnt);
printf("sum=%d\n",sum);
WriteDat();

void WriteDat()

FILE*fp;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n%d\n",cnt,sum);
fclose(fp);

答案:

参考答案:void countvalue()
{
int a:
for(a=6;a<13;a++)
if(18-2*a>0)
{
cnt++:
sum+=13:
}

解析: 本题主要考查的是解方程问题。本题的难点和解题的关键在于分析题目,对于给定的方程组变形得到B=18-2*A,C=A-5>0,因此A从6开始可能满足方程,而由第一个方程知道A不可能大于13,因此我们可以用for循环内嵌if语句来解出方程,如果B>0,那么此时的A就满足该方程组,cnt增1,并且由第一个方程知道有一组解sum的值增加13。

试题推荐
微信公众账号搜索答案