Skip to content

Latest commit

 

History

History
200 lines (148 loc) · 3.31 KB

ch01.md

File metadata and controls

200 lines (148 loc) · 3.31 KB

1.1 & 1.2

在mac电脑下: g++ main.cpp。当 return 0 时,echo $? 返回 0,当return -1时,返回255

1.3

#include<iostream>

int main()
{
    std::cout<<"Hello World"<<std::endl;
    return 0;
}

1.4

#include<iostream>

int main()
{
    int a = 2 *3;
    int b = 2+3;
    std::cout<<a<<std::endl<<b;
    return 0;
}

1.5

#include<iostream>

int main()
{
    int a = 2 *3;
    int b = 2+3;
    std::cout<<a<<std::endl;
    std::cout<<b<<std::endl;
    return 0;
}

1.6

不合法,v1v2后不应该有分号了

1.7

返回如下:

error: expected expression

1.8

第一个、第二个和第四个合法,第三个不合法

前两个和后两个/**/ 构成了一个注释,中间的"/*"被当做了输出

1.9

#include<iostream>
int main()
{
    int i = 50;
    int sum = 0;
    while (i <= 100){
        sum += i;
        ++i;
    }
    std::cout<<sum;
    return 0;
}

1.10

#include<iostream>
int main()
{
    int i = 10;
    while(i!=-1){
        std::cout<<i--<<std::ends;
    }
    return 0;
}

1.11

#include<iostream>
int main() {
    std::cout<<"输入两个整数"<<std::endl;
    int a;
    int b;
    std::cin>>a>>b;
    int i = a<b? a : b;
    int j = a<b? b: a;
    ++i;
    for(;i<j;++i) std::cout<<i<<std::endl;
}

1.12

sum = 0

1.13

比较简单,略过

1.14

在for循环中,循环控制变量的初始化和修改都放在语句头部分,形式较简洁,且特别适用于循环次数已知的情况。在while循环中,循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。两种形式各有优点,但它们在功能上是等价的,可以相互转换。

1.15

1.16

#include<iostream>
int main() {
    double i;
    double sum = 0;
    while(std::cin>>i){
        sum += i;
    }
    std::cout<<sum<<std::endl;
}

1.17 & 1.18

#include<iostream>
int main() {
    int currVal = 0, val = 0;
    if(std::cin >> currVal) {
        int cnt = 1;
        while (std::cin >> val) {
            if (val == currVal) cnt++;
            else {
                std::cout << currVal << " occurs " << cnt << " times " << std::endl;
                currVal = val;
                cnt = 1;
            }
        }
        std::cout << currVal << " occurs " << cnt << " times " << std::endl;
    }
}

输入全相等的值,程序还会等待输入,输入结束符号后才输出答案

输入全不相等的值,除了一开始,每输入一次就输出一次上次输入的值

1.19

1.10编写的程序已经能正确处理这种情况了

1.20 & 1.21 & 1.22

#include<iostream>
#include "Sales_item.h"

int main() {
    Sales_item a(std::cin);
    Sales_item b(std::cin);
    Sales_item c(std::cin);
    std::cout<< a + b<<std::endl;

    std::cout<< a <<std::endl;
    std::cout<< b<<std::endl;
    std::cout<< c<<std::endl;
    return 0;
}

注意这种构造函数里是个 iostream 类型,里面的命令是:is >> *this,可以往类里自己写数据,当然前提是自己要重载输入运算符。

1.23 & 1.24 & 1.25