LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 748|回复: 7

同一函数内,同一变量可以在不同的循环中有不同的值吗?

[复制链接]
发表于 2006-6-7 00:27:10 | 显示全部楼层 |阅读模式
如题所述下例中变量i在main函数中,一个可以随输入测试值的大小而变化(如为1亿),一个只能在0至5的范围内变化,在main函数中的同一变量不是应该一致吗?在运行中代码一切正常,二者并没有发生冲突,应该如何正确理解?
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. using namespace std;
  6. int rand_0toN1(int n);
  7. int hits[5];
  8. int main(){   
  9.    int i,r,n;
  10.     srand(time(0));
  11.     cout<<"Enter number of trials to run,";
  12.      cout<<"and press ENTER: ";
  13.     cin>>n;
  14.     for (i=1;i<=n;i++){   //[size=+2]变量 i 随测试数n的变化而变化[/size]
  15.           r=rand_0toN1(5);
  16.           hits[r]++;
  17.          
  18.        }
  19.      cout<<"i"<<"   :  "<<"   name   "<<"   n%"<<endl;
  20.      for (i=0;i<5;i++){    //[size=+2]变量 i在0至5的范围内变化[/size]
  21.            cout<<i<<"   :  "<<"    slr       ";
  22.           cout<<static_cast<double>(hits[i]) / (n/5)<<endl;
  23.         }
  24.      return 0;
  25.   }

  26. int rand_0toN1(int n){
  27.      return rand()%n;
  28.   }
复制代码
发表于 2006-6-7 01:17:33 | 显示全部楼层
你根本没有理解变量的概念,变量在计算机中其实是指一段存储空间的名字,访问这个变量,就是访问它所对应的存储空间。所以,在不同的时候,一个存储空间是可以存放不同的值的,它对应的变量的值也就可以不同了。
回复 支持 反对

使用道具 举报

发表于 2006-6-7 16:56:22 | 显示全部楼层
不是凑贴数的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-7 20:23:53 | 显示全部楼层
Post by pupilzeng
变量在计算机中其实是指一段存储空间的名字,访问这个变量,就是访问它所对应的存储空间。所以,在不同的时候,一个存储空间是可以存放不同的值的,它对应的变量的值也就可以不同了。
是不是这样的,在上例中开始第一个for循环中i的值为从1到n.在不同的时候结束第一个后,第二个循环中变量i的值从1到5循环。但我怎么看这两个循环又象是交与进行循环的。

再看,再运行,再想,确实不是交与进行循环的。

刚开始学,确实不明白。
回复 支持 反对

使用道具 举报

发表于 2006-6-7 21:35:29 | 显示全部楼层
Post by dgkgnrt
是不是这样的,在上例中开始第一个for循环中i的值为从1到n.在不同的时候结束第一个后,第二个循环中变量i的值从1到5循环。但我怎么看这两个循环又象是交与进行循环的。

再看,再运行,再想,确实不是交与进行循环的。

刚开始学,确实不明白。

什么叫交与进行循环?
在这i只不过是充当了一个计数器的作用,两次循环是独立进行的,先进行第一个,后进行第二个。
还是建议你先多看书,而不是自己去写程序猜测。这些东西都是在书中可以找到的。只有那些书中没有的,或者不确定的,才需要动手写点程序。
所谓“思而不学则殆”。
回复 支持 反对

使用道具 举报

发表于 2006-6-9 15:18:01 | 显示全部楼层
终于看见一个连我都会的问题!
回复 支持 反对

使用道具 举报

发表于 2006-6-9 15:18:48 | 显示全部楼层
终于看见一个连我都会的问题!
回复 支持 反对

使用道具 举报

发表于 2006-6-9 15:39:11 | 显示全部楼层
怎么搞的,出来这么多!可不是我存心起哄啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表