作者:不详 来源:互联网   酷勤网收集 2008-04-23

摘要
  求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序

  题目53:已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数SVALUE(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数WRITEDAT()把数组b中的数输出到OUT.DAT文件.
  例如:1239,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1.
        8129,9-8-1-2<0,则该数不满足条件忽略。
   注意:部分源程序已给出。
   程序中已定义数组:a[300],已定义变量:cnt
   请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
---------------------
void jsValue() /*标准答案*/
{int I,thou,hun,ten,data,j;
for(I=0;I<300;I++)
 {thou=a[I]/1000;  hun=a[I]%1000/100;
  ten=a[I]%100/10;  data=a[I]%10;
  if (data-thou-hun-ten>0){b[cnt]=a[I];cnt++;}
 }
for(I=0;I<cnt-1;I++)
  for(j=I+1;j<cnt;j++)
   if(b[I]<b[j])
    {data=b[I]; b[I]=b[j];b[j]=data;}
}

分类: 题库中心 南开100题

上一篇:题目49:找出满足千位数上的数减百位数减十位数上的数减个位数上的数大于零,并求平均值   下一篇:题目54:找出满足千位数上的数加个位数上的数等于百位数上的数加十位数上的数,并排序