当前位置: 代码迷 >> C语言 >> 三级上机题的一个疑问
  详细解决方案

三级上机题的一个疑问

热度:267   发布时间:2006-08-29 23:41:16.0
三级上机题的一个疑问
题目:
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

答案:
void jsVal()
{int i,j,thou,hun,ten,data;
for(i=0;i<200;i++)
{thou=a/1000; hun=a%1000/100;
ten=a%100/10; data=a%10;
if(thou&&thou%2&&hun%2&&ten%2&&data%2) b[cnt++]=a;
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b<b[j]) {thou=b; b=b[j];b[j]=thou;}
}


请教大家这一句怎么来理解:if(thou&&thou%2&&hun%2&&ten%2&&data%2) 它的作用是找出奇数。

改成这样:if(thou%2!=0&&hum%2!=0&&ten%2!=0data%2!=0)对不对?为什么不对?
谢谢!
搜索更多相关的解决方案: 疑问  上机  

----------------解决方案--------------------------------------------------------

作用是一样的,可以


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-29 16:11:54
fantasyzc

等 级:新手上路
帖 子:2
专家分:0
注 册:2006-8-16
  得分:0 
void jsVal()
{int i,j,thou,hun,ten,data;
for(i=0;i<200;i++)
{thou=a/1000; hun=a%1000/100;
ten=a%100/10; data=a%10;
if(thou&&thou%2&&hun%2&&ten%2&&data%2) b[cnt++]=a;
}
本身就有错 cnt是什么 a[i]为什么不写好 低级错误
----------------解决方案--------------------------------------------------------
  相关解决方案