| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:四位数的问题?
只看楼主 加入收藏
ml342418175
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2007-4-13
结帖率:100%
收藏
 问题点数:0 回复次数:4 
四位数的问题?

已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整
数, 函数ReadDat( )读取这若干个正整数并存入数组xx中。请编
制函数Calvalue( ), 其功能要求: 1. 求出这文件中共有多少个
正整数totNum; 2. 求这些数右移1位后, 产生的新数是奇数的数
的个数totCnt, 以及满足此条件的这些数(右移前的值)的算术平
均值totPjz。最后main()函数调用函数WriteDat()把所求的结果
输出到文件OUT.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动数据文件IN.DAT中的任何数据,主函数main()、读
数据函数ReadDat()和输出数据函数WriteDat()的内容。
*/
#include
#include
#define MAXNUM 200

int xx[MAXNUM] ;
int totNum = 0 ; /* 文件IN.DAT中共有多少个正整数 */
int totCnt = 0 ; /* 符合条件的正整数的个数 */
double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;
void WriteDat(void) ;

void Calvalue(void)
{/**/
for(; xx[totNum]; totNum++)
if((xx[totNum]>>1)%2)
{ totCnt++; totPjz+=xx[totNum];}
if(totCnt) totPjz/=totCnt;/*这个语句是不是也属于for循环里要执行的呢?如果是的话,他是循环一次执行一次吗?*/
/*感觉这里有问题,totCnt已经是一个确定的数了,如果这样的话,那么这个语句不是就会一直执行下去吗?*/
}

void main()
{
int i ;
clrscr() ;
for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
if(ReadDat()) {
printf("数据文件IN.DAT不能打开!\007\n") ;
return ;
}
Calvalue() ;
printf("文件IN.DAT中共有正整数=%d个\n", totNum) ;
printf("符合条件的正整数的个数=%d个\n", totCnt) ;
printf("平均值=%.2lf\n", totPjz) ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;

if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
while(!feof(fp)) {
fscanf(fp, "%d,", &xx[i++]) ;
}
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;

fp = fopen("OUT.DAT", "w") ;
fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
fclose(fp) ;
}

out.dat 文件内容应当如下:
160
80
5537.54

请大家帮忙看看.

[此贴子已经被作者于2007-9-1 8:40:04编辑过]

搜索更多相关主题的帖子: 位数 
2007-09-01 08:37
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 
第二个if不是for里面的语句,for不带{}默认下一句是循环体.

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2007-09-01 09:12
ml342418175
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2007-4-13
收藏
得分:0 
以下是引用vbc在2007-9-1 9:12:21的发言:
第二个if不是for里面的语句,for不带{}默认下一句是循环体.

如果第二个IF不是FOR里面的,那么第二个IF要怎么理解呢?请说一下.


做人要洒脱一点,潇洒一点!
2007-09-01 09:26
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 

第二个if好象是用来求平均数的.


清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2007-09-01 10:55
critaxu
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-29
收藏
得分:0 
以下是引用vbc在2007-9-1 9:12:21的发言:
第二个if不是for里面的语句,for不带{}默认下一句是循环体.

恩,if没有被放进循环


想改变不可能,只有努力!努力不等于成功,可是不努力,就一定不会成功。
2007-09-01 12:37
快速回复:四位数的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014319 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved