当前位置: 代码迷 >> C语言 >> [求助]一道C题请教
  详细解决方案

[求助]一道C题请教

热度:156   发布时间:2005-05-18 14:07:00.0
[求助]一道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);
}
搜索更多相关的解决方案: clrarrayb  readdata  include  

----------------解决方案--------------------------------------------------------
你这个程序想完成什么功能?
----------------解决方案--------------------------------------------------------
这是老师出的,我也不知道。
----------------解决方案--------------------------------------------------------
郁闷什么题啊!!
----------------解决方案--------------------------------------------------------
好像没有结果
----------------解决方案--------------------------------------------------------
睇唔明?
----------------解决方案--------------------------------------------------------
  相关解决方案