| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1205 人关注过本帖
标题:关于FOR循环的三级题
只看楼主 加入收藏
78838698
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-14
收藏
 问题点数:0 回复次数:12 
关于FOR循环的三级题
不明白怎么循环的,高手指点一下。 这是里面的一段代码,这是一个求一个4位整数数组中千位和10位是奇数的正整数个数和它们中千位和10位是奇数的平均数的函数, int i, j1, j2; for( i=0; i<100; i++) if(xx[i]) tntcon++; for( i=0; i<tnttcon; i++){ j1 = xx[i]%1000 ; j2 = (xx[i]%100)/10; if ( j1%2!==0 && j2 % 2!==0) tcncon += xx[i] ; cnt++ } pingjun = tcncon/cnt; 数组和一些变量在主函数中定义了。 还有一些,不过都忘了。不明白第二个FOR是怎么循环的。 还有程序介绍说xx[i]%1000是求千位数,我不明白怎么求出来的.。 告诉我

[此贴子已经被作者于2005-1-8 20:42:02编辑过]

搜索更多相关主题的帖子: FOR cnt 整数 变量 tcncon 
2005-01-08 20:34
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
能不能给出完整点的代码啊?

2005-01-09 01:31
workhard
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2004-11-17
收藏
得分:0 

int i, j1, j2;

for( i=0; i<100; i++) if(xx[i]) tntcon++;//统计数组xx[i]中的元素,存储在tntcon中 for( i=0; i<tnttcon; i++){ j1 = xx[i]%1000 ;//得到千位数字注意j1是整形 j2 = (xx[i]%100)/10;//得到十位数字 if ( j1%2!==0 && j2 % 2!==0)//如果千位和十位都是基数 { tcncon += xx[i] ;//求和 cnt++;//统计数目(这里掉了括号) } } pingjun = tcncon/cnt//求均值 我加了注释,你再仔细想想,挺简单的


2005-01-10 15:30
musicyxy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2004-8-14
收藏
得分:0 
你的代码是不是写错了啊!

2005-01-10 16:54
78838698
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-14
收藏
得分:0 
谢谢,不过还是有点不明白第二个for怎么循环的,两次循环都应该在数组xx[i]中吧
for( i=0; i&lt;100; i++) if(xx[i])   tntcon++;
           for( i=0; i&lt;tnttcon; i++)

由于if(xx[i]) 判断数组中的数是否为正整数,所以tnttcon只能统计数组中一部分整数的个数,
用tnttcon控制循环就不能把整个数组里的数值查找完吧。所有的正整数不可能都在前面吧。

这个题是在一个3级试题上看的,具体的程序记不清了,只记的这些代码

2005-01-10 20:12
amzyb
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-1-10
收藏
得分:0 
//假设输入的数不会超过100且都大于0
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;
void main(){
int tnttcon,tcncon,cnt,pingjun;
int  i,j1,j2;
int xx[100];
tcncon=0;//用来累计求和
cnt=0;
tnttcon=0;
for(i=0;i&lt;100;i++){
 xx[i]=0;
}
printf("Please input the nums you want to tongji:\n");
//最后请输入0000
for(i=0;i&lt;100;i++){
 scanf("%d",&amp;xx[i]);
 if(xx[i]==0)
  break;
}
for( i=0; i&lt;100; i++){
 if(xx[i]){   
   tnttcon++;//统计共输入几个数
 }
}
for( i=0; i&lt;tnttcon; i++){
 j1=(xx[i]%10000)/1000 ;//取千位数(在保证输入的数不超过10000时原来的语句就能得到千位了)
 j2=(xx[i]%100)/10;//取十位数
 if (j1%2!=0&amp;&amp;j2%2!=0){
  tcncon+=xx[i];
  cnt++;//统计数目
 }
}
pingjun=tcncon/cnt;//平均
}
题目总是弄些莫名其妙的东西让我们来解析,很烦!
我试着理解它的意思写了个完整的程序,你看看吧!
应该对你的理解有帮助!
不过有个bug,就是你必须输入一个以上满足题意的数!
2005-01-11 11:46
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
收藏
得分:0 
j1 = xx[i]%1000 ;这不能得到千位数,要得到千位数,应该这样:j1 = xx[i]/1000;这是原则问题,不能有错。
2005-03-01 15:32
78838698
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-14
收藏
得分:0 
谢谢

2005-03-09 19:40
编程呆子
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-1-6
收藏
得分:0 
以下是引用78838698在2005-1-8 20:34:39的发言: 不明白怎么循环的,高手指点一下。 这是里面的一段代码,这是一个求一个4位整数数组中千位和10位是奇数的正整数个数和它们中千位和10位是奇数的平均数的函数, int i, j1, j2; for( i=0; i<100; i++) if(xx[i]) tntcon++; for( i=0; i<tnttcon; i++){ j1 = xx[i]%1000; j2 = (xx[i]%100)/10; if ( j1%2!==0 && j2 % 2!==0) tcncon += xx[i] ; cnt++ } pingjun = tcncon/cnt; 数组和一些变量在主函数中定义了。 还有一些,不过都忘了。不明白第二个FOR是怎么循环的。 还有程序介绍说xx[i]%1000是求千位数,我不明白怎么求出来的.。 告诉我
首先,你的运算符用过了。例如:j1 = xx[i]%1000中的%号是求余的,整除应该是/的,这是原则问题。还有 j1 = xx[i]%1000; j2 = (xx[i]%100)/10; if ( j1%2!==0 && j2 % 2!==0) tcncon += xx[i] ; cnt++ 这些都是循环体的,在内循环是顺序执行的
2005-03-10 13:51
形影随从
Rank: 1
等 级:新手上路
威 望:1
帖 子:188
专家分:0
注 册:2005-3-15
收藏
得分:0 
for( i=0; i<100; i++) if(xx[i]) tntcon++; 这条是算出XX[100]这个数组中具体放了多个数在里面。他定义为XX[100]并不代表这个数组里有100个数, TNTCON是这个数组中的个数。所以在第二个循环里会用到这个控制循环的次数。 第二个循环是执行 { } 这个大括符中的内容。

2005-03-17 23:29
快速回复:关于FOR循环的三级题
数据加载中...
 
   



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

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