| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 321 人关注过本帖
标题:最后一个writeDat()函数有点疑问
取消只看楼主 加入收藏
skyerblue
Rank: 2
来 自:安徽
等 级:论坛游民
帖 子:24
专家分:60
注 册:2011-8-9
结帖率:83.33%
收藏
 问题点数:0 回复次数:0 
最后一个writeDat()函数有点疑问
在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。
例如:处理前 9012  5099  6012  7025  8088
处理后 5099  8088  7025  6012  9012
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include  <stdio.h>
#include  <string.h>
#include  <stdlib.h>
int  aa[200], bb[10];
void readDat();
void writeDat();

void jsSort()
{
int i,j;                  
    int temp;                  
    for(i=0;i<199;i++)        
    for(j=i+1;j<200;j++)
    {
      if(aa[i]%1000<aa[j]%1000)      
      {
        temp=aa[i];
        aa[i]=aa[j];
        aa[j]=temp;
      }
      else if(aa[i]%1000==aa[j]%1000)      
             if(aa[i]>aa[j])            
             {
               temp=aa[i];
               aa[i]=aa[j];
               aa[j]=temp;
             }
    }
     for(i=0;i<10;i++)      
        bb[i]=aa[i];

}

void main()
{
readDat();
jsSort();
writeDat();
}

void readDat()
{
FILE *in;
int i;
in = fopen("IN6.DAT", "r");
for(i = 0; i < 200; i++) fscanf(in, "%d,", &aa[i]);
fclose(in);
}

void writeDat()
{
FILE *out;
int i;
out = fopen("OUT6.DAT", "w");
system("CLS");
for (i = 0; i < 10; i++)
{
printf("i=%d,%d\n", i+1, bb[i]);
fprintf(out, "%d\n", bb[i]);
}
fclose(out);
}

就是这个部分
{
printf("i=%d,%d\n", i+1, bb[i]);
fprintf(out, "%d\n", bb[i]);
}
不懂为什么先用printf()再用fprintf(),而且printf里有两个数据,但是,fprintf()里只有一个???
搜索更多相关主题的帖子: 6012 源程序 正整数 
2011-08-10 21:15
快速回复:最后一个writeDat()函数有点疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043258 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved