大家论坛-大家学习网论坛计算机专区全国计算机等级考试考试动态,经验交流 → 关于三级网络上机考试的讨论!


  共有1527人关注过本帖树形打印

主题:关于三级网络上机考试的讨论!

帅哥哟,离线,有人找我吗?
gds1987
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学四年级 贴子:84 金钱:189 金币:0 积分:33 魅力:0 精华:0 注册:2007-12-30 15:22:00
关于三级网络上机考试的讨论!  发贴心情 Post By:2008-5-13 10:19:00

想问一下大家: 不使用strcmp比较函数,而直接用 大于号> 和 小于号<   行不行 ?
有没有分数?
不胜感激!!!!!!!!!!!!!!!!!!!!!!!

 

题目是这样的:

 

  题目49:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列, 若金额相等, 则按产品代码从小到大进行排列  最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT49.DAT中。
    注意: 部分源程序存放在PROG1.C中。
    请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include<stdio.h>
#include<memory.h>
#include<string.h>
#include<stdlib.h>

#define MAX 100
typedef struct
{
char dm[5];
char mc[11];
int dj;
int sl;
long je;
} PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();

void SortDat()
{

}

void main()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}

void ReadDat()
{
FILE *fp;
char str[80],ch[11];
int i;

fp=fopen("IN49.DAT","r");
for(i=0;i<100;i++)
    {
     fgets(str,80,fp);
     memcpy(sell.dm,str,4);
     memcpy(sell.mc,str+4,10);
     memcpy(ch,str+14,4);
     ch[4]=0;
     sell.dj=atoi(ch);
     memcpy(ch,str+18,5);
     ch[5]=0;
     sell.sl=atoi(ch);
     sell.je=(long)sell.dj*sell.sl;
    }
fclose(fp);
}

void WriteDat()
{
FILE *fp;
int i;

fp=fopen("OUT49.DAT","w");
for(i=0;i<100;i++)
    {
     fprintf(fp,"%s  %s  %4d  %5d  %10ld\n",sell.dm,sell.mc,sell.dj,sell.sl,sell.je);
    }
fclose(fp);
}


标准答案是:

void SortDat()
{ int i,j;
  PRO temp;
  for(i=0;i<99;i++)
      for(j=i+1;j<100;j++)
            if(sell[i].je>sell[j].je)
         { temp=sell[i];
           sell[i]=sell[j];
           sell[j]=temp;
         }
            else if(sell[i].je==sell[j].je)
         if(strcmp(sell[i].dm,sell[j].dm)>0)
                 { temp=sell[i];
                   sell[i]=sell[j];
                    sell[j]=temp;
                  }
}

 

 

我的答案是:仅仅将第12行的函数 strcmp(sell[i].dm,sell[j].dm)>0 改为 sell[i].dm>sell[j].dm
           即并没有使用 strcmp 函数,但也达到了比较的目的. 其它都程序段一样


所以求教大家: 我这次的 三级机试 是 100分 还是 0分 ?


0  回到顶部
帅哥哟,离线,有人找我吗?
gds1987
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学四年级 贴子:84 金钱:189 金币:0 积分:33 魅力:0 精华:0 注册:2007-12-30 15:22:00
  发贴心情 Post By:2008-5-13 10:47:00

我的答案是:仅仅将第12行的函数 strcmp(sell[i].dm,sell[j].dm)>0 改为 sell[i].dm>sell[j].dm
       即并没有使用 strcmp 函数,但也达到了比较的目的. 其它都程序段和标准答案一样


所以求教大家: 我这次的 三级机试 有没有分数 ?

 

因为后来我用了模拟软件试了一下:结果是0分

一定要和标准答案一模一样吗?这还是考试吗?



0  回到顶部
帅哥哟,离线,有人找我吗?
翊程博云
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网幼儿园 贴子:3 金钱:121 金币:0 积分:2 魅力:0 精华:0 注册:2008-6-5 16:53:00
  发贴心情 Post By:2008-6-5 16:56:00

用户已被锁定

0  回到顶部
帅哥哟,离线,有人找我吗?
zhaxu123
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学一年级 贴子:25 金钱:125 金币:0 积分:7 魅力:0 精华:0 注册:2008-3-8 21:20:00
  发贴心情 Post By:2008-6-5 20:46:00

谢谢了

0  回到顶部