关于三级网络技术的题,我做了以后只记住了结果,我想知道对不对!最后的结果是6么?!!!
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编一个程序其功能是:把千位数字和十位数字重新组成一个新的含有两位...
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编一个程序其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数ab,(新数的十位数字是原来四位数字的千位数字,新数的个位数是原来的十位数),以及把个位数字和百位数字组合成另一个新含有两位数cd,如果新组成的数字ab>cd,ab必须为偶数且被五整除,cd为奇数,同时两个数十位数组均不为0,则将其按从大到小的顺序存入数组b中,并计算出满足上述条件的四位数的个数cnt 我得出的结果倒是挺符合题意的,但是有地啊纠结最后一行{t=b[i];b[i]=b[j];b[j]=t;}
会不会写错了~~~有点小强迫症啊!!!拜托哪位大哥大姐能帮我运行出满分结果,看看是不是6呀。。。我真的等不出成绩才知道对错了 展开
会不会写错了~~~有点小强迫症啊!!!拜托哪位大哥大姐能帮我运行出满分结果,看看是不是6呀。。。我真的等不出成绩才知道对错了 展开
2个回答
展开全部
这个结果要看in.dat是什么的才能知道的,如果输入文件不一样,输出不一样派洞的,
我写给你看应该是
int i,j,temp,thou,hun,ten,data,ab,cd;
for(i=0;i<200;i++)
{
thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
ab=thou*10+ten;
cd=data*10+hun;
if(ab>cd&&ab%2==0&&ab%5==0&&cd%2&&thou!=0&&data!=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])
{
temp=b[i];
b[i]=b[j];
b[j]=b[i];
}
按理说输出程序应该是包括数组b和cnt,如果只有一个6的话程序很可尘败枯能错误,因为还有一个从大到小的排序
我写给你看应该是
int i,j,temp,thou,hun,ten,data,ab,cd;
for(i=0;i<200;i++)
{
thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
ab=thou*10+ten;
cd=data*10+hun;
if(ab>cd&&ab%2==0&&ab%5==0&&cd%2&&thou!=0&&data!=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])
{
temp=b[i];
b[i]=b[j];
b[j]=b[i];
}
按理说输出程序应该是包括数组b和cnt,如果只有一个6的话程序很可尘败枯能错误,因为还有一个从大到小的排序
追问
对的,还有一行数字,我记不清了,好像有个什么6701.。。我检查的结果倒是挺符合题目要求的,就是担心,如果最后一行万一b[i]和b[j]的打错了,运行的结果和正确答案能否一样。。。。但是那样还是0分呀·~~我是个巨马虎的人~~~~(>_<)~~~~
追答
大小的排序都是
temp=b[i];
b[i]=b[j];
b[j]=b[i];
如果是从大到小就是
if(b[i]b[j])
这个就看你自己了 原理要搞清楚呀~如果打错了应该不能运行的 既然你运行成功了应该没啥问题 你那时候就应该看看运行的答案符合不符合题目意思,题目要求都很清楚的~你运气真好抽到这个题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询