[求助]一道C题请教
请按注释提示的要求完成."{=====}"到"{----}"之间的程序。在本题中应完成三个自定义函数。
完成程序后请务必编译并运行程序,没有执行程序的不得分。
注:不得修改"{====}"到"{----}"之外的任何程序。
*/
#include <stdio.h>
#include <math.h>
FILE *fp;
main()
{
int code=53;
unsigned char a[200],b[200];
void store(),readdata(),clrarrayb(),collectd(),findmm(),changeb();
readdata(a);
fp=fopen("EXAM3","w");
fprintf(fp,"%s","Exam3 Result\n");
fclose(fp);
clrarrayb(b);
store(a,b);
collectd(b,0,200,code);
clrarrayb(b);
changeb(a,b);
collectd(b,0,200,code+4);
clrarrayb(b);
findmm(a,b);
collectd(b,0,1,code+3);
collectd(b,1,2,code+8);
printf("Program 3 is finished.\n");
}
/*
请按要求完成 Store 函数:
对于i=0~99,若数组元素a[i]的平方除以1000后的值大于i,则把a[i]存入对应
下标数组元素b[i]中。
*/
void store(a,b)
unsigned char a[],b[];
{
int i;
for(i=0;i<100;i++)
/*{=======================================================}*/
h
/*{-------------------------------------------------------}*/
}
*
请按要求完成 changeb函数:
将a数组中数据除以7后,小数部分大于0.5的数依次存放在数组元素b[0],b[1],...中。
*/
void changeb(a,b)
unsigned char a[],b[];
{
int i,j;
j=0;
for(i=0;i<200;i++)
/*{=======================================================}*/
/*{-------------------------------------------------------}*/
}
/*
请按要求完成 findmm函数:
请在a[19]...a[149]中找出最大的奇数,并求出这部分数的平均数的整数部分,
分别存入b[0]与b[1]。
*/
void findmm(a,b)
unsigned char a[],b[];
{
int i;
long sum=0;
unsigned char max;
max=-32767;
for(i=19;i<150;i++)
{
/*{=======================================================}*/
/*{-------------------------------------------------------}*/
}
b[0]=max;
b[1]=(int)(sum/(150-19));
}
void readdata(a)
unsigned char a[];
{
int i;
FILE *fp1;
fp1=fopen("DATALIB.DAT","rb");
fread(a,1,200,fp1);
fclose(fp1);
}
void clrarrayb(b)
unsigned char b[200];
{
int i;
for(i=0;i<200;i++) b[i]=0;
}
void collectd(a,num0,num1,code)
int num0,num1,code;
unsigned char a[];
{
int i;
double s;
fp=fopen("EXAM3","a");
s=code;
for(i=num0;i<num1;i++) s+=sqrt((double)a[i]);
fprintf(fp,"%10.3lf\n",s);
fclose(fp);
}