首页 > 用户发贴区 > 编程问题提问区 > main must return int 的问题怎么解决?
2009
03-13

main must return int 的问题怎么解决?

main must return int 的问题怎么解决?

题目


已知IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat() 把结果cnt及数组b中符合条件的4位数输出到 OUT.DAT文件中。
注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
(红字代表自己编写的程序,黑字为源程序不可以改动)


程序


#include <stdio.h>


#define MAX 200


int a[MAX], b[MAX], cnt = 0 ;


void writeDat();


 


void jsVal()


{


  int i,j,k,flag;


  for(i=0;i<MAX-5;i++)


  {


    for(j=i+1;j<5;j++)                 


  if(a>a[j])


   {


     flag=1;


   } 


  else


   {


     flag=0;      


   }


  if(flag==1&&a%2==1)


   {


   b[cnt]=a;


   cnt++;


   }


  }


  for(i=0;i<cnt-1;i++)


   for(j=0;j<cnt;j++)


   {


    k=b;


    b=b[j];


    b[j]=k;


    }


                    


}


void readDat()


{


  int i ;


  FILE *fp;


  fp = fopen(“IN.DAT”, “r”) ;


  for(i = 0 ; i < MAX ; i++) fscanf(fp, “%d”, &a) ;


  fclose(fp) ;


}


void main()


{


  int i ;


  readDat() ;


  jsVal() ;


  printf(“满足条件的数=%d\n”, cnt) ;


  for(i = 0 ; i < cnt ; i++) printf(“%d “, b) ;


  printf(“\n”) ;


  writeDat() ;


}


void writeDat()


{


  FILE *fp;


  int i ;


  fp = fopen(“OUT.DAT”, “w”) ;


  fprintf(fp, “%d\n”, cnt) ;


  for(i = 0 ; i < cnt ; i++) fprintf(fp, “%d\n”, b) ;


  fclose(fp) ;


}


 


辛苦了,谢谢!!


main must return int 的问题怎么解决?》有 1 条评论

  1. Freeze 说:

    #include <stdio.h>
    #define MAX 200
    int a[MAX], b[MAX], cnt = 0 ;
    void writeDat();
    void jsVal()
    {
     int i,j,k,flag=1;
     for(i=0;i<MAX-5;i++)
     {
      if(a[i]%2==0)
       continue;
      else
      {
       for(j=i+1;j<6;j++)                 
       if(a[i]<=a[j])
        flag=0;
      }
      if(flag==1)
       {
        b[cnt]=a[i];
        cnt++;
       }
     }
     for(i=0;i<cnt-1;i++)
      for(j=i;j<cnt;j++)
      {
       if(b[i]>b[j])
       {
        k=b[i];
           b[i]=b[j];
           b[j]=k;
       }
      }
    }
    void readDat()
    {
     int i ;
     FILE *fp;
     fp = fopen(“IN.DAT”, “r”) ;
     for(i = 0 ; i < MAX ; i++)
      fscanf(fp, “%d”, &a) ;
     fclose(fp) ;
    }
    void main()
    {
     int i ;
     readDat() ;
     jsVal() ;
     printf(“满足条件的数=%d\n”, cnt) ;
     for(i = 0 ; i < cnt ; i++) printf(“%d “, b[i]) ;
     printf(“\n”) ;
     writeDat() ;
    }
    void writeDat()
    {
     FILE *fp;
     int i ;
     fp = fopen(“OUT.DAT”, “w”) ;
     fprintf(fp, “%d\n”, cnt) ;
     for(i = 0 ; i < cnt ; i++) fprintf(fp, “%d\n”, b[i]) ;
     fclose(fp) ;
    }
    数组和排序还有待提高

留下一个回复