
上一篇文章介绍了计数器,本文章接着介绍累加器。
(二)、累加器:ans=ans+i
在前面舀水的例子中,如果我们关注的不是加了多少瓢,而是一共加了多少水,如果每次加水的量也不一样,这时该怎么办?例如,第一次加1升,第二次加2升,第三次加3升,…,这个过程就是逐步累加的过程。这时就需要用到语句"ans=ans+x;"。赋值符号前后的ans表示的是加水前后的两种状态,这里也要将ans初始化为0,否则对结果会有一定的影响。其执行过程如下:
| 程序语句(ans=0;) | ans的值 |
| ans = ans+1; | ans(1) <- 0+1 |
| ans = ans+2; | ans(3) <- 1+2 |
| ans = ans+3; | ans(6) <- 3+3 |
| ans = ans+4; | ans(10) <- 6+4 |
通过对比累加求和,可以得到累乘的写法为"ans=ans*x;",在使用累乘前,要将ans初始化为1;累除的写法为"ans=ans/x;",累除的时候要保证式子有意义,x的值不能为0,而且ans定义为整型,这个除法就是整除。
实战题目:
阅读以下程序,写出程序运行结果。
#include<bits/stdc++.h>
using namespace std;
int main(){
int ans=0,x;//定义累加器ans并赋初值为0,定义一个变量x
cin>>x;//输入一个整数存储到x
ans=ans+x;//将x的值累加到ans
cout<<ans<<endl;//输出ans
cin>>x;//输入一个整数存储到x
ans=ans+x;//将x的值累加到ans
cout<<ans<<endl;//输出ans
cin>>x;//输入一个整数存储到x
ans=ans+x;//将x的值累加到ans
cout<<ans<<endl;//输出ans
return 0;
}
//假设依次输入32、15和26
程序分析:
程序中第5行表示从键盘上读入第一个值32,第6行表示将32累加到ans,第7行输出ans并换行;接下来又从键盘上读入一个值15,继续累加到ans中,32加15得47,输出换行;最后从键盘上再读入一个值26进行累加,此时ans为73,输出换行。
输出结果:
32
47
73

被折叠的 条评论
为什么被折叠?



