【卡码网C++基础课 4.A+B问题4】


题目描述与分析

题目描述:
你的任务是计算若干整数的和。

输入描述:
每行的第一个数N,表示本行后面有N个数。
如果N=0时,表示输入结束,且这一行不要计算。

输出描述:
对于每一行数据需要在相应的行输出和。

输入示例:

4 1 2 3 4
5 1 2 3 4 5
0 

输出示例:

10
15

在本题中,你需要计算若干个整数的和,每行第一个数n表示后面有n个数,后面的几个数是输入的整数,如果n为0时,结束输入。

根据之前学习的内容,我们可以写出初步的代码:

#include<iostream>
using namespace std;
int main() {
  // 定义一个变量n用于接收输入的个数
  int n;
  // 持续输入n
  while(cin >> n) {
    // 当n等于0的时候,结束循环
    if (n == 0) break;
       
    // 对输入的数字进行累加
  }
}

对输入数字进行累加,我们可以事先定义一个变量sum, 用于计算最后的结果,每输入一个数(用变量a来指代),就把输入的数值累加到sum当中,即sum = sum + a, 只需要把这个过程执行n次即可,代码如下:

#include<iostream>
using namespace std;
int main() {
  int n;
  while(cin >> n) {
    if (n == 0) break;
    // 定义一个变量sum, 用于每次累加
       int sum = 0;
    // 定义一个变量a, 用于接收每次输入的数值
    int a;
    // 操作执行n次
    while(n--) {
      // 输入一个数字a
      cin >> a;
      // 将输入的数字a累加到sum上,并赋值给sum
      sum = sum + a;
    }
    // 输入完n个数字之后,输出sum
    cout << sum << endl;
  }
}

上述代码已经满足题目要求,但是还可以进行改进

一、算术运算符

在 C++ 中,算术运算符用于执行基本的数学计算,包括加、减、乘、除以及取模等操作。这些运算符可以应用于内建的数值类型,如整数和浮点数。

常用的算术运算符
1.加法 (+):计算两个操作数的和。
2.减法 (-):从第一个操作数中减去第二个操作数。
3.乘法 (*):计算两个操作数的乘积。
4.除法 (/):
如果两个操作数都是整数,执行整数除法,结果也是整数(小数部分被舍去)。
如果至少一个操作数是浮点数,执行浮点除法,结果是浮点数。
5.取模(余数) (%):返回两个整数相除的余数。注意,操作数必须是整数。
6.递增 (++):将操作数增加 1。可以是前缀(++x)或后缀(x++)形式,前缀先增加再返回值,后缀先返回值再增加。
7.递减 (–):将操作数减少 1。递增运算符的用法同样适用于递减运算符

下面是一些使用这些算术运算符的示例:

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 3;
    
    cout << "a + b = " << (a + b) << endl;  // 输出:a + b = 13
    cout << "a - b = " << (a - b) << endl;  // 输出:a - b = 7
    cout << "a * b = " << (a * b) << endl;  // 输出:a * b = 30
    cout << "a / b = " << (a / b) << endl;  // 输出:a / b = 3
    cout << "a % b = " << (a % b) << endl;  // 输出:a % b = 1

    a++;  // a 现在是 11
    cout << "a++ = " << a << endl;

    --b;  // b 现在是 2
    cout << "--b = " << b << endl;

    return 0;
}

二、赋值运算符

在 C++ 中,赋值运算符用于将值从右侧表达式分配给左侧的变量。最基本的赋值运算符是等号(=),它确保右侧表达式的值被存储在左侧变量中。此外,C++ 还提供了一系列复合赋值运算符,这些运算符将算术或位运算与赋值操作结合在一起,简化代码书写

等号 (=):将右侧操作数的值赋给左侧操作数。除了=这种赋值运算符之外,我们经常会对某个值进行运算后,再把计算的结果赋给这个值,比如sum = sum + a, 将sum的值和a进行运算后,再赋值给sum, 此时我们可以使用复合赋值运算符+=

int sum = 0;
for(int i = 1; i <= 10; i++) {
  sum += i; // 和sum = sum + i是等价的
}

我们通常都使用sum += i的形式来书写代码,而且这种形式也常常用于其他算数运算符,比如-=、*=、/=、%=

sum -= i; // 等价于 sum = sum - i;
sum *= i; // 等价于 sum = sum * i;
sum /= i; // 等价于 sum = sum / i;
sum %= i; // 等价于 sum = sum % i;

此外我们声明的变量a单独占了一行,我们可以使用下面的方式进行简写:

int a;
int b;
// 简化操作
int a, b;

最终代码如下:

#include<iostream>
using namespace std;
int main(){
    int n, a;
    while (cin >> n) {
        if (n == 0) break; // 退出循环
        int sum = 0;
        while (n--) {
            cin >> a;
            sum += a;       	// 累加操作
        }
        cout << sum << endl;
    }
}
  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值