注册 登录
编程论坛 C++教室

新人求帮助

wuchunbing 发布于 2012-10-17 13:51, 366 次点击

#define LOW 0
#define HIGH 5
#define CHANGE 2
#include <iostream>
using namespace std;
int i=LOW;
void main()
{  int workover(int i);int reset(int i);
   int i=HIGH;
   reset(i/2);
   printf("i=%d\n",i);
   reset(i=i/2);
   printf("i=%d\n",i);
   reset(i/2);
   printf("i=%d\n",i);
   workover(i);
   printf("i=%d\n",i);
}
int workover(int i)
{
   i=(i%i)*((i*i)/(2*i)+4);
   printf("i=%d\n",i);
   return(i);
}
int reset(int i)
{
    i=i<=CHANGE?HIGH:LOW;
    return(i);
}
谁帮我讲下i值的变化顺序 和最终的结果 谢谢 我自己运行了下 实在看不懂 求助
6 回复
#2
风之子MIKEY2012-10-17 15:00
#define LOW 0
#define HIGH 5
#define CHANGE 2
#include <iostream>
using namespace std;
int i=LOW;
void main()
{  int workover(int i);int reset(int i);
   int i=HIGH;              //i=5
   reset(i/2);              //i=5
   printf("i=%d\n",i);      //i=5
   reset(i=i/2);           //i=2
   printf("i=%d\n",i);     //i=2
   reset(i/2);             //i=2
   printf("i=%d\n",i);    //i=2
   workover(i);           //i=2
   printf("i=%d\n",i);    //i=2
}
int workover(int i)
{
   i=(i%i)*((i*i)/(2*i)+4);
   printf("i=%d\n",i);     //i=0
   return(i);
}
int reset(int i)
{
    i=i<=CHANGE?HIGH:LOW;
    return(i);
}
#3
wuchunbing2012-10-17 15:26
楼上的有没有QQ 我详细请教下 实在不懂的 谢谢了
#4
风之子MIKEY2012-10-17 15:35
822469752
#5
rossmonica2012-10-17 15:36
回复 楼主 wuchunbing
楼主,你这程序是做什么用的,意义是什么
#6
wuchunbing2012-10-17 16:23
课后作业 就是加深理解变量在被调用哦 值的变化和各变量的适用范围
#7
风之子MIKEY2012-10-17 17:25
变量在调用时是通过值传递。你的变量I在调用时为5,传递的是5这个值,变量I不会改变。要改变I必须传递I的地址。
1