卡码网语言基础课 | 4. A+B问题Ⅳ

本文介绍了在C++中进行累加操作的基本方法,包括使用循环求和,以及算术运算符如加减乘除的用法。还区分了赋值运算符=和-=等的使用。通过简化代码示例展示了如何计算给定整数序列的和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、累加操作

二、算术运算符

三、赋值运算符

四、解答


通过本次练习,将会学习到以下C++知识点:

  • 累加操作
  • 算术运算符
  • 赋值运算符

一、累加操作

本练习的累加操作,并不复杂。可直接使用n--来进行循环操作,稍微复杂的为n个数并不有序,依次递减或者递增。

        //定义一个初始变量,用于后续每次累加
        int sum=0;
        
        //定义一个变量a,用于接收每次输入的数值
        int a;
        
        //进行n个数的依次累加求和
        //本例并不复杂,使用n--即可进行求解计算
        while(n--){
            cin>>a;
            sum=sum+a;
        }
        //输入完n个数字之后,输出sum
        cout << sum << endl;

二、算术运算符

常用的算术运算符有+、-、*、/、%,含义分别是加法、减法、乘法、除法和取模。

PS:整数相除的结果还是整数,如果结果有小数部分,则直接舍弃小数部分。

int a = 1 + 2; // 运算结果为3
int b = 1 - 2; // 运算结果为 -1
int c = 1 * 2; // 运算结果为2
int d = 5 / 2; // 运算结果是2,小数部分被舍弃

int e = 21 % 6; // 结果是3
//意思是计算两个整数相除所得的余数,参与取余运算的运算对象必须是整数类型

三、赋值运算符

注意“==”和“=”的区别

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

四、解答

题目:计算若干整数的和。其中,每一行的第一个数N,表示该行后面有N个数,并求这N个数之和,输出结果应与输入结果的行一至,若N=0,则输入结束,且该行不做计算。

1.初始代码

#include <iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        //判断若n=0,则结束循环,并不进行计算
        if(n==0)break;
        
        //定义一个初始变量,用于后续每次累加
        int sum=0;
        
        //定义一个变量a,用于接收每次输入的数值
        int a;
        
        //进行n个数的依次累加求和
        //本例并不复杂,使用n--即可进行求解计算
        while(n--){
            cin>>a;
            sum=sum+a;
        }
        //输入完n个数字之后,输出sum
        cout << sum << endl;
    }
}



2.简化更新后

#include <iostream>
using namespace std;
int main(){
    int n,a;
    while(cin>>n){
        //判断若n=0,则结束循环,并不进行计算
        if(n==0)break;
        
        //定义一个初始变量,用于后续每次累加
        int sum=0;
        
        //进行n个数的依次累加求和
        //本例并不复杂,使用n--即可进行求解计算
        while(n--){
            cin>>a;
            sum +=a;
        }
        //输入完n个数字之后,输出sum
        cout << sum << endl;
    }
}

### SQL 查询设计 #### 统计2010年春季学期教课的教师数 为了统计2010年春季学期教授课程的教师数量,可以利用 `teaches` 表中的数据。通过筛选 `semester='Spring'` 和 `year=2010` 的记录,并使用 `COUNT(DISTINCT ID)` 来去重计算唯一的教师ID。 ```sql SELECT COUNT(DISTINCT ID) AS teacher_count FROM teaches WHERE semester = 'Spring' AND year = 2010; ``` 此查询基于引用的内容[^1],能够准确获取符合条件的教师总数。 --- #### 查询2009年秋季学期讲授两门及以上课程的教师信息 要找到在2009年秋季学期讲授两门或更多课程的教师信息,可以通过连接 `teaches` 表和 `instructor` 表来完成。具体操作如下: 1. 使用 `GROUP BY` 对每名教师按其ID分组。 2. 利用 `HAVING COUNT(*) >= 2` 过滤出授课次数大于等于两次的教师。 3. 将这些结果与 `instructor` 表联结以获取完整的教师信息。 以下是对应的SQL语句: ```sql SELECT i.ID, i.name, i.dept_name, i.salary FROM teaches t JOIN instructor i ON t.ID = i.ID WHERE t.semester = 'Fall' AND t.year = 2009 GROUP BY t.ID, i.name, i.dept_name, i.salary HAVING COUNT(t.course_id) >= 2; ``` 该查询逻辑结合了表间关系的设计思路[^2],确保满足需求的同时保持高效性。 --- #### 统计每个系在2010年春季学期讲授至少一门课的教师人数 对于这一场景,需要先确定哪些教师在指定时间段内有教学活动,再按照所属院系分类汇总。实现方式如下: 1. 首先过滤出 `semester='Spring'` 且 `year=2010` 的记录。 2. 去除重复的教师ID以避免重复计数。 3. 联接 `instructor` 表提取部门名称字段 (`dept_name`) 并进行聚合统计。 最终形成的SQL脚本为: ```sql SELECT i.dept_name, COUNT(DISTINCT t.ID) AS teacher_count_per_dept FROM teaches t JOIN instructor i ON t.ID = i.ID WHERE t.semester = 'Spring' AND t.year = 2010 GROUP BY i.dept_name; ``` 这段代综合运用了多个概念[^2][^4],从而实现了复杂业务逻辑的支持。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值