c++编程思想第二章课后习题详解

2-1:编写程序,使它能打印你的名字和年龄;

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string name;
    int age;

    cout<<"please input your name:"<<endl;
    cin>>name;
    cout<<"please input your age:"<<endl;
    cin>>age;

    cout<<"your name is "<<name<<" and your age is "<<age<<endl;

    return 0;
}

2-2:输入圆半径,输出圆面积;

#include <iostream>
#include <string>
using namespace std;

#define PI 3.1415

int main()
{
    int radius;
    float area;

    cout<<"please input circle radius:"<<endl;
    cin>>radius;
    area = PI * radius * radius;
    cout<<"circle's area is "<<area<<endl;

    return 0;
}

2-3:编一个程序用于打开文件,并统计文件中以空格隔开的单词数;

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    ifstream in("a.txt");
    string s;
    int count = 0;

    while(in>>s)
    {
        count++;
    }
    cout<<"the word number:"<<count<<endl;

    return 0;
}

2-4:编一个程序统计文件中特定单词的出现次数;

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    ifstream in("a.txt");
    string s,word;
    int count = 0;

    cout<<"please input the word that you want match:"<<endl;
    cin>>word;

    while(in>>s)
    {
        if (s == word)
        {
            count++;
        }
    }
    cout<<"the word number:"<<count<<endl;

    return 0;
}

2-5:修改FileVector.cpp使其能重后向前打印各行;
(容器vector可以像数组一样使用下标操作)

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

int main()
{
    ifstream in("a.txt");
    string s;
    vector <string> v;

    while(getline(in, s))
    {
        v.push_back(s);
    }

    //注意循环条件,数组下标最大为v.size()-1
    for (int i = v.size() - 1; i >= 0; i--)
    {
        cout<<v[i]<<endl;
    }

    return 0;
}

2-6:修改FileVector.cpp使他能把vector中的所有元素连接成一个字符串,并打印,但不要加上行号;

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

int main()
{
    ifstream in("a.txt");
    string s,line;
    vector <string> v;

    while(getline(in, line))
    {
        v.push_back(line);
    }

    for (int i = 0; i < v.size(); i++)
    {
        s += v[i];
    }

    cout<<s<<endl;

    return 0;
}

2-7:编一个程序,一次显示一行,然后等待用户按回车键后显示下一行;

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

int main()
{
    ifstream in("a.txt");
    string s,line;
    vector <string> v;

    while(getline(in, line))
    {
        v.push_back(line);
    }

    for (int i = 0; i < v.size(); i++)
    {
        cout<<v[i];
        //让c++程序暂停,等待用户输入回车
        cin.get();
    }

    return 0;
}

2-8:创建一个vector并用for循环语句向它输入25个浮点数,显示vector的结果;

#include <iostream>
#include <string>
#include <vector>
using namespace std;

#define num_count 25

int main()
{
    float s;
    vector <float> v;

    cout <<"please input "<<num_count<<" float number:"<<endl;
    for (int i = 0; i < num_count; i++)
    {
        cin>>s;
        v.push_back(s);
    }

    for (int i = 0; i < v.size(); i++)
    {
        cout<<v[i]<<" ";
    }

    return 0;
}

2-8:创建三个vector对象,与第八题一样填写前两个对象。编一个for循环把前两个vector的每一个对应元素加起来,结果放入第三个vector对象的对应元素中,显示这三个vector的结果;

#include <iostream>
#include <string>
#include <vector>
using namespace std;

#define num_count 25

int main()
{
    int i = 0;
    float s;
    vector <float> v1,v2,v3;

    cout <<"please input "<<num_count<<" float number for v1:"<<endl;
    for (i = 0; i < num_count; i++)
    {
        cin>>s;
        v1.push_back(s);
    }

    cout <<"please input "<<num_count<<" float number for v2:"<<endl;
    for (i = 0; i < num_count; i++)
    {
        cin>>s;
        v2.push_back(s);
    }

    for (i = 0; i < num_count; i++)
    {
        v3.push_back(v1[i]+v2[i]);
    }

    cout<<"v1:";
    for (i = 0; i < num_count; i++)
    {
        cout<<v1[i]<<endl;
    }

    cout<<"v2:";
    for (i = 0; i < num_count; i++)
    {
        cout<<v2[i]<<endl;
    }

    cout<<"v3:";
    for (i = 0; i < num_count; i++)
    {
        cout<<v3[i]<<endl;
    }

    return 0;
}

2-10:编一个程序,创建一个vector,像前面练习那样输入25个数。求每个数的平方并把它们放入vector的同样位置。显示运算前后的vector;

#include <iostream>
#include <string>
#include <vector>
using namespace std;

#define num_count 25

int main()
{
    int i = 0;
    float s;
    vector <float> v1,v2;

    cout <<"please input "<<num_count<<" float number for v1:"<<endl;
    for (i = 0; i < num_count; i++)
    {
        cin>>s;
        v1.push_back(s);
    }

    for (i = 0; i < num_count; i++)
    {
        v2.push_back(v1[i] * v1[i]);
    }

    cout<<"v1:";
    for (i = 0; i < num_count; i++)
    {
        cout<<v1[i]<<endl;
    }

    cout<<"v2:";
    for (i = 0; i < num_count; i++)
    {
        cout<<v2[i]<<endl;
    }

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值