| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 900 人关注过本帖
标题:100题学习专贴第7题
只看楼主 加入收藏
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
 问题点数:0 回复次数:12 
100题学习专贴第7题

7:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
----------------------------------
void SortDat()
  {
    int I,j;
    PRO xy;                 /*PRO为一已定义的结构体*/
    for(I=0;I<99;I++)       /*100个数循环*/
    for(j=I+1;j<100;j++)    /*同样是100个数循环,但较前一个后置一位*/
    if(strcmp(sell[I].dm,sell[j].dm)<0)   /*  strcmp: 比较字符串s1和s2。
                                             说明:
                                             当s1<s2时,返回值<0
                                             当s1=s2时,返回值=0
                                             当s1>s2时,返回值>0
                                           */

    {
       xy=sell[I];
       sell[I]=sell[j];   /*经典方法*/
       sell[j]=xy;
    }
    else if(strcmp(sell[I].dm,sell[j].dm)==0)
    if(sell[I].je<sell[j].je)  /*注意,这里没有用到 strcmp 是因为 je是长整型的数据类型*/
    {
      xy=sell[I];
      sell[I]=sell[j];
      sell[j]=xy;
    }
  }

搜索更多相关主题的帖子: 产品 函数 源程序 
2006-03-15 15:38
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:42
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:42
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:43
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8902
专家分:2567
注 册:2004-3-25
收藏
得分:0 
我给总结一个吧

畅所欲言
2006-03-15 15:43
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
好呀~~ 把搂主发的都放一起  

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:44
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:45
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-15 15:47
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
8:函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
------------------------------
void encryptChar()
{
int I;
char *pf; /*字符型指针*/
for(I=0;I<maxline;I++) /*行数*/
{
pf=xx[I]; /*将xx[]字符数组中的每行字符串赋给 pf,切指针指向该行字符第一位。*/
while(*pf!=0) /* “当”型循环,只要pf不等于0,循环一直进行*/+
{
if(*pf*11%256>130||*pf*11%256<=32); /*如果为真,其下没有操作,则默认为保持该字符不变*/
else
*pf=*pf*11%256;
pf++;
}
}
}

能学多少是多少,不学是傻瓜!
2006-03-15 15:48
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
谢谢上面的斑竹哥哥!!!,麻烦你们了,给你们添麻烦了。

能学多少是多少,不学是傻瓜!
2006-03-15 15:50
快速回复:100题学习专贴第7题
数据加载中...
 
   



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

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