*******************************************************************************
19题
程序PROGI.C的功能是:在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b【】中。条件如下:某数既是完全平方数,又是两位数字相同,例如144、676等。
请考生编制函数 int jsValue(int bb[])实现此功能,满足该条件的整数的个数通过说所编制的函数返回。
int jsValue(int bb[])
{
int n, k, a, b, c, cnt = 0 ;
for(k = 10 ;; k++) {
n = k * k ;
if(n < 100) continue ;
if(n > 999) break ;
a = n / 100 ;
b = n % 100 / 10 ;
c = n % 10 ;
if((a-b)*(a-c)*(b-c) == 0) {
printf(\"N=%d=%d*%d\\n\
bb[cnt++] = n ;
}
}
return cnt ;
}
*******************************************************************************
20题
已知数据样文IN1.DAT中存有200个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以前的连续五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满5个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大
到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal()
{
int i, j, ab ;
for(i = 5 ; i < MAX ; i++) {
if((a[i] % 2) && (a[i] % 7==0) && a[i] > a[i-1] && a[i] > a[i-2] && a[i] >a[i-3] && a[i] >a[i-4] && a[i] >a[i-5]) b[cnt++] = a[i] ;
}
for(i = 0 ; i < cnt - 1 ; i++)
for(j = i + 1 ; j < cnt ; j++)
if(b[i] < b[j]) {
ab = b[j] ;
b[j] = b[i] ;
b[i] = ab ;
}
}
*******************************************************************************
54题
已知数据样文IN.DAT中存有200个四位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以前的连续五个数且该数是偶数(该四位数以前不满5个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal()
{
int i, j, ab ;
for(i = 5 ; i < MAX ; i++) {
if((a[i] % 2==0) && a[i] > a[i-1] && a[i] > a[i-2] && a[i] >a[i-3] && a[i] >a[i-4]
&& a[i] >a[i-5]) b[cnt++] = a[i] ;
}
for(i = 0 ; i < cnt - 1 ; i++)
for(j = i + 1 ; j < cnt ; j++)
if(b[i] < b[j]) {
ab = b[j] ;
b[j] = b[i] ;
b[i] = ab ;
}
}
*******************************************************************************
56题
已知数据样文IN.DAT中存有200个四位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果
该四位数连续小于该四位数以后的连续五个数且该数是偶数(该四位数以后不满5个数,则不统计),则统计出满足此条件的个数cnt,并把这些四位数存入数组b中而后对数组b进行升序排列,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal()
{
/* 判断一个四位数连续小于该四位数以后的五个数且该数是偶数 */
/* if((a[i] % 2==0) && a[i] < a[i+1] && a[i] < a[i+2] && a[i] /* 该提示仅供解题参考,考生也可用其他方法解题 */ int i, j, ab ; for(i = 0 ; i < MAX - 5 ; i++) {