编程题求解~

Randoll 2003-09-11 07:00:53
计算排序
已知数据文件IN.DAT中存有30个四位数,并已调用读函数readDat()把这些数存入数组a中,
轻便协议函数jsValue(),其功能是:求出千位数上的数减百位数上的数大于零的个数cnt,再

把所有满足此条件四位数依次存入数组b中,然后对数组b中四位数按从小到大的顺序进行排序

最后调用函数writeDat()把数组b中的数输出到OUT.DAT文件。
例如:9123 9-1>0 则该数满足条件存入数组b中,且个数cnt=cnt+1.
2319 1-9<0 则该数不满足条件忽略。
注意:部分源程序已给出。
程序中已经定义数组:a[30],b[30],已定义变量:cut。

请勿改动主函数main(),读数据函数ReadDat()和输出数据函数WriteDat()的内容。(文件路径

需要根据情况修改)
试题程序:
#include<stdio.h>
#include<conio.h>
int b[10000],cnt=0;
jsValue()
{








}
main()
{
int i,j=0;
clrscr();
jsValue();
for(i=0;i<cnt;i++)
{
printf("b[%d] ",i,b[i]);
if(i%6==0)printf("\n");
}
}
readDat()
{
FILE *in;
int i;


in=fopen("a:\\in.dat","r");
for(i=0;i<30;i++)
fscanf(in,"%d",&a[i]);
fclose(in);
}


writeDat(int count)
{
FILE *out;
int i;


out=fopen("a:\\out.dat","w");
/*clrscr(); */
fprintf(out,"%d\n",cnt);
for(i=0;i<cnt;i++){
fprintf(out,"%d\n",b[i]);
}
fclose(out);
}

把程序补充完成

空白部分是要填得内容。

谢谢高手啦。

我是没着了
...全文
26 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
scalps 2003-09-11
  • 打赏
  • 举报
回复
int i;
int j=0;
cnt = 0;
int tmp;

for(i=0; i<30; i++)
{
if(a[i]/1000-a[i]/100)
{
cnt ++;
b[j++] = a[i];
}
}

for(i=0; i<j; i++)
{
for(k=i; k<j; k++)
{
if(b[k]<a[i])
{
tmp = a[i];
a[i] = b[k];
b[k] = tmp;
}
}

大致就这样啦,比较简单的。
(好像我同学他们考三级的题目的。?)
duanma 2003-09-11
  • 打赏
  • 举报
回复
不会是数据结构里的题目吧?
gumo 2003-09-11
  • 打赏
  • 举报
回复
空白部分是.......
thrillers 2003-09-11
  • 打赏
  • 举报
回复
up

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧