百度首页 | 百度空间
 
查看文章
 
全国计算机等级考试上机题(南开100题)第75题
2007年09月21日 20:00

75:在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的之和,其中满足条件的个数作为函数jsSort() 的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
-----------------------------------
int jsSort() /*标准答案*/
{int I,j,count=0;
Data val;
for(I=0;I<200;I++)
if(aa[I].x1>aa[I].x2+aa[I].x3)
{bb[count].x1=aa[I].x1;
bb[count].x2=aa[I].x2;
bb[count].x3=aa[I].x3;
count++;}
for(I=0;I<count-1;I++)
for(j=I+1;j<count;j++)
if (bb[I].x1+bb[I].x3<bb[j].x1+bb[j].x3)
{val=bb[I]; bb[I]=bb[j]; bb[j]=val;}
return count;
}
原程序如下:
#include<stdio.h>
#include<string.h>
#include<conio.h>

typedef struct{ int x1,x2,x3;
}data;
data aa[200],bb[200];
data aa[200],bb[200],m;
int jsSort()
{
}

void main()
{ int count;
readDat();
count=jsSort(); /*返回满足条件的个数*/
writeDat(count); }
readDat(int count)
{ FILE *in;
int i;

in=fopen("in.dat","r");
for(i=0; i<200; i++)
fscanf(in,"%d,%d,%d",&aa[i].x1,&aa[i].x2,&aa[i].x3);
fclose(in);
}
writeDat()
{ FILE *out;
int i;
clrscr();
out=fopen("out.dat","w");
for(i=0; i<10; i++){
printf("%d,%d,%d 第一个数+第三个数=%d\n",bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x1+bb[i].x3); fprintf(out,"%d,%d,%d\n",bb[i].x1,bb[i].x2,bb[i].x3); }
fclose(out); }


类别:计算机考试(上机) | 添加到搜藏 | 浏览() | 评论 (0)
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu