📄
字号:
题目54:已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数SVALUE(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数CNT,再把所有满足条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数WRITEDAT()把数组b中的数输出到OUT.DAT文件.
例如:7153,7+1=5+3,则该数满足条件存入数组bb中,且个数CNT=CNT+1.
8129,8+1<>2+9,则该数不满足条件忽略.
注意:部分源程序已给出。
程序中已定义数组: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 (thou+hun==data+ten){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;}
}
或者:
jsValue()
{int q,b,s,g,i,j;
for(i=0;i<300;i++)
{q=a[i]/1000;
b=a[i]/100%10;
s=a[i]/10%10;
g=a[i]%10;
if(q+g==b+s)
b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]> b[j])
{q=b[i];b[i]=b[j];b[j]=q;}
}
jsvalue()
{ int i,k,m,a1,a2,a3,a4,j=0;
for(i=0;i<300;i++)
{ a1=a[i]/1000;
a2=(a[i]%1000)/100;
a3=(a[i]%100)/10;
a4=a[i]%10;
if(a1+a2==a3+a4)
{ cnt++;
b[j++]=a[i]; } }
for(i=0;i<cnt;i++)
for(k=i+1;k<cnt;k++)
if(b[i]<b[k])
{ m=b[i];b[i]=b[k];b[k]=m;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -