当前位置: 代码迷 >> C语言 >> 紧急求助:这道题哪里出错了(Ctrl+F7时没错误,Ctrl+F5时出错)
  详细解决方案

紧急求助:这道题哪里出错了(Ctrl+F7时没错误,Ctrl+F5时出错)

热度:578   发布时间:2008-03-16 02:59:44.0
紧急求助:这道题哪里出错了(Ctrl+F7时没错误,Ctrl+F5时出错)
在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。
    例:处理前 6012  5099  9012  7025  8088
        处理后 9012  6012  7025  8088  5099
    部分源程序存在文件prog1.c中。
  (PROG.OBJ - 0 error(s), 0 warning(s),PROG.exe - 1 error(s), 0 warning(s))
#include  <stdio.h>
#include  <string.h>
#include  <conio.h>
int  aa[200], bb[10] ;
void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
  for(j=i+1;j<200;j++)   
  if(aa[i]%1000<aa[j]%1000)
           {data=aa[i];
                 aa[i]=aa[j];
                            aa[j]=data;}
         else if(aa[i]%1000==aa[j]%1000)
               if(aa[i]>aa[j])
               {data=aa[i];
                     aa[i]=aa[j];
                                aa[j]=data;}

for(i=0;i<10;i++)
   bb[i]=aa[i];


}
main()
{
readDat() ;
jsSort() ;
writeDat() ;
}
readDat()
{
FILE *in ;
int i ;
in = fopen("IN3.DAT", "r") ;
for(i = 0 ; i < 200 ; i++) fscanf(in, "%d,", &aa[i]);
fclose(in) ;
}
writeDat()
{
FILE *out ;
int i ;
out = fopen("OUT3.DAT", "w") ;
clrscr() ;
for (i = 0 ; i < 10 ; i++)
     {
      printf("i=%d,%d\n", i + 1, bb[i]) ;
      fprintf(out, "%d\n", bb[i]) ;
     }
fclose(out) ;
}

[[it] 本帖最后由 cbullet 于 2008-3-16 13:04 编辑 [/it]]
搜索更多相关的解决方案: Ctrl  函数  dat  数值  

----------------解决方案--------------------------------------------------------
回复 1# 的帖子
问题太不具体了
----------------解决方案--------------------------------------------------------
是啊..lz最好自己贴出程序..我们帮你改改
----------------解决方案--------------------------------------------------------
实在郁闷,VC错了又不点明哪里错了,以前用TC就很不错了
----------------解决方案--------------------------------------------------------
n=200;
改成
n=200;
注意最后的分号,应该是半角的,而不是全角
其它地方我没看,可能还有类似错误
----------------解决方案--------------------------------------------------------
  相关解决方案