全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(二)

上一篇文章介绍了计数器,本文章接着介绍累加器。

(二)、累加器: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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

律己杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值