2006年全国房价_2006年9月全国等级考试三级c语言上机题库(二十三)

试题集锦 2023-06-15 网络整理 可可

【shitiku.jxxyjl.com--试题集锦】

★题目23 (实数运算题)

 

已知在文件in.dat中存有n个(个数<200)实数,函数readdat()读取这n个实数并存入数组xx中。请编制函数calvalue(),其功能要求:

1、求出这n个实数的平均值aver;

2、分别求出这n个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。

注意:部分源程序已给出。

请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。

#include <stdio.h>

#include <conio.h>

#define maxnum 200

 

float xx[maxnum] ;

int n= 0 ; /* 文件in.dat中共有多少个实数 */

double aver=0.0;/*平均值*/

double sumint=0.0;/*整数部分之和*/

double sumdec=0.0;/*小数部分之和*/

 

int readdat(void) ;

void writedat(void) ;

 

void calvalue(void)

{int i;

for (i=0;i<n;i++)

{sumint+=(long)xx[i];

sumdec+=xx[i]-(long)xx[i];

aver+=xx[i];

}

aver/=n;

}

 

void main()

{ int i ;

clrscr() ;

for(i = 0 ; i < maxnum ; i++) xx[i] = 0 ;

if(readdat()) {

printf("数据文件in.dat不能打开!\007\n") ;

return ;

}

calvalue() ;

printf("文件in.dat中共有实数=%d个\n", n) ;

printf("平均值=%.2lf\n", aver) ;

printf("整数部分之和=%.2lf\n", sumint) ;

printf("小数部分之和=%.2lf\n", sumdec) ;

writedat() ;

system("pause");

}

 

int readdat(void)

{

file *fp ;

int i = 0 ;

 

if((fp = fopen("in.dat", "r")) == null) return 1 ;

while(!feof(fp)) {

fscanf(fp, "%d,", &xx[i++]) ;

}

fclose(fp) ;

return 0 ;

}

 

void writedat(void)

{

file *fp ;

 

fp = fopen("out.dat", "w") ;

fprintf(fp, "%.2lf\n%.2lf\n%.2lf\n", aver,sumint,sumdec) ;

fclose(fp) ;

}

本文来源:https://shitiku.jxxyjl.com/shitijijin2/27223.html

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计