问答题
                                     文件IN.DAT中存放有100条对10个候选人进行选举的记录,数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。函数ReadData()负责将IN.DAT中的内容读人数组inBuf[]中。请编制函数calculate()来统计每个人的选票数并把得票数依次存入outBuf[0]outBuf[9]中,最后写函数WriteData()把结果outBuf[]输出到文件OUT.DAT中。
  注意:部分源程序已给出。
  请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。
  试题程序:
  #include<stdio.h>
  #include<memory.h>
  #define LINE 100
  #define COL 10
  #define THR 5
  char inBuf[LINE][COL];
  int outBuf[COL];
  int readData(void);
  void writeData(void);
  void calculate(void)
  
  void main()
  int i:
  for(i=0;i<10;i++)outBuf[i]=0;
  if(readData())
  printf("IN.DAT can’t be opened");
  return;
  calculate();
  writeData();
  int readData(void)
  FILE*fp;
  int i;
  char tt[COL+1];
  if((fp=fopen("IN.DAT","r"))==NULL)
  return 1;
  for(i=0;i<LINE;i++)
  if(fgets(tt,COL+2,fp)==NULL)  
  return 1;
  memcpy(inBuf[i],tt,COL);
  fclose(fp);
  return 0;
  void writeData(void)
  FILE*fp;
  int i;
  fp=fopen("OUT.DAT","w");
  for(i=0;i<10;i++)
  fprintf(fp,"%d",outBuf[i]);
  printf("the amounts of number%d’s votes%d",i+1,outBuf[i]);
  fclose(fp);)
                                
                                            【参考答案】
                                            
                                            
void calculate(void)
  {
  int i,j,k,sum,use_i;
  i......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)