首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
admin
2010-09-05
29
问题
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。
注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include <stdio.h>
#include <conio. h>
#define MAXNUM 200
int number [MAXNUM];
int totNum = 0; /* 文件IN.dst 中共有的正整数个数*/
int totCnt = 0; /* 符合条件的正整数的个数*/
double totAve = 0.0; /* 平均值 */
int ReadDat (void);
void writeDat(void);
void CalValue(void)
{
}
void main ()
{ int i;
for (i=0; i<MAXNUM; i++)
number
= 0;
if (ReadDat())
{ printf (" 数据文件 IN.dst 不能打开! \007\n");
return;
}
CalValue ();
printf(" 文件 IN.dst 中共有的正整数个数=%d个\n", totNum);
printf (" 符合条件的正整数的个数 =%d个\n", totCnt);
printf("平均值=%.2f\n", totAve);
writeDat ();
}
int ReadDat (void)
{ FILE *fp;
int i = 0;
if ((fp = fopen("IN.dat", "r")) == NULL)
return 1;
while (!feof(fp))
fscanf(fp, "%d,", &number [i++]);
fclose (fp);
return 0;
}
void writeDat (void)
{ FILE *fp;
fp = fopen("OUT.dat", "w");
fprintf(fp, "%d\n%d\n%6.2f\n", totNum, totCnt, totAve);
fclose (fp);
}
选项
答案
void CalValue(void) { int i, data; for (i=0; i<MAXNUM; i++) { if (!number[i]) break; if (number[i] > 0) totNum++; data = number[i]>>1; if (data%2) { totCnt++; totAve += number[i]; } } totAve /= totCnt; } [解题思路] 在for循环语句中,自变量i从0递增到MAXNUM对数组number中的每个数进行判断,如果number[i]的值大于0,说明number[i]的值为正整数,统计正整数个数的变量totNum加1;然后number[i]右移1位得到data的值;再对data的值除2求余数,如果其值为1,则统计变量totCnt加1,同时把number[i]的值加到totAve上,得到这些数的和。退出循环后,用totAve的值除以totCnt,就得到了这些数的算术平均值totAve。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/iuvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
在关系代数中,从两个关系的笛卡尔积中,选取它们的属性间满足一定条件的元组的操作,称为
在SQL语言的SELECT语句中,实现投影操作的是哪一个子句?
一个关系模式为Y(X1,X2,X3,X4),假定该关系存在如下函数依赖:X1←→X2,X1→X3,X1→X4,则该关系属于【】。
数据库系统设计过程中数据库维护阶段的工作包括日常维护、定期维护和______几个方面。
散列法存储中处理碰撞的方法主要有两类:拉链法和_____。
“找出使用供应商名为虹星,的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有______。“找出北京供应商的所有信息”的SELECT语句是______。
一棵有n个结点的树,该树中所有结点的入度之和为______。
在关系数据库规范化理论的研究中,在函数依赖的范畴内,_____达到了最高的规范化程度。
下列问题的关系代数操作基于如下的关系R和S:
下面有关E-R模型向关系模型转换的叙述中,不正确的是________。
随机试题
不属于尿液检查的是
A.泻肝火B.退虚热C.安胎D.养阴清热E.清心火黄柏的功效是
A.脾虚湿盛B.肾阳亏虚C.湿热下注D.脾肾阳虚E.肾阴虚某女,29岁,患有带下病,症见带下量多,质清稀如水,绵绵不断,腰痛如折,畏寒肢冷。中医辨证为
2006年农村居民家庭平均每百户年底洗衣机拥有量为42.98台。这一指标是()。
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性。()
墨子认为:“国有贤良之士众,则国家之治厚;贤良之士寡,则国家之治薄。”这一思想体现的是教育的()功能。
正式群体
甲、乙、丙、丁、戊五人去泳池游泳,游完上岸后都发现自己穿的拖鞋不是下水前的那双。已知甲穿的拖鞋不是丁和乙的,乙穿的拖鞋不是丙和丁的,丙穿的拖鞋不是戊和乙的,丁穿的拖鞋不是丙和戊的,戊穿的拖鞋不是丁和甲的,另外没有两个人互相穿了对方的拖鞋。那么谁穿了乙的拖
2009年5月,就全国而言,关于31个大城市住宅价格指数表述正确的是()。
设x和Y都是int类型,且x=1,y=2,则printf(“%d%d”,X,Y,(x,y))的输出结果是()。
最新回复
(
0
)