1.已知在文件IN.dat中存有若干个(不多于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中所有的正整数个数totNum;②求这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totave。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。
【答案】
void CalValue(void)
{ int i, thou, hun, ten, data;
for (i=0; i { if (!number[i]) break; if (number[i] > 0) totNum++; thou = number[i]/1000; hun = number[i]%1000/100; ten = number[i]%100/10; data = number[i]%10; if ((thou+hun+ten+data)%2) { totCnt++; totave += number[i]; } } totave /= totCnt; } [NextPage] 2.下列程序的功能是:计算500~800区间内素数的个数count,并按所求素数的值从大到小的顺序排序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数primeValue()实现程序的要求。最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。 【答案】 void primeValue() { int i, j, half, yy[100]; for (i=800; i>=500; i--) { half = i/2; for (j=2; j if (i%j == 0) break; if (j >= half) { yy[count] = i; count++; } } for (i=0, j=1; i { sum += j*yy[i]; j = j*-1; } } [NextPage] 3.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数count以及这些数的和sum。请编写函数calValue()实现程序的要求,最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。 【答案】 void calValue() { int i, thou, hun, ten, data; for (i=5000; i>=1000; i--) { thou = i/1000; hun = i%1000/100; ten = i%100/10; data = i%10; if (thou+hun==ten+data && thou+hun==(data-thou)*10) { count++; sum += i; } } }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|