zoukankan      html  css  js  c++  java
  • [C++ Primer Plus] 第6章、分支语句和逻辑运算符(一)程序清单

    程序清单6.2

    #include<iostream>
    using namespace std;
    
    void main() {
        char ch;
        cout << "Type, and I shall repeat.
    ";
        cin.get(ch);
        while(ch != '.')
        {
            if (ch == '
    ')
                cout << ch;
            else
                cout << ++ch;
            cin.get(ch);
        }
        system("pause");
    }

    程序清单6.5

    #include<iostream>
    using namespace std;
    
    const int Size = 6;
    void main() {
        float naaq[Size];
        int i = 0;
        float temp;
        cout << "First value:";
        cin >> temp;
        while (i < Size&&temp >= 0) {
            naaq[i] = temp;
            ++i;
            if (i<Size)
            {
                cout << "Next value:";
                cin >> temp;
            }
        }
        if (0 == i)
            cout << "No data!" << endl;
        else {
            cout << "Enter your NAAQ:";
            float you;
            cin >> you;
            int count = 0;
            for (int j = 0; j < i; j++)
            {
                if (naaq[j] > you)
                    ++count;
            }
            cout << count << "个数字比你的大" << endl;
        }
        system("pause");
    }

    程序清单6.8(字符函数库cctype)

    #include<iostream>
    #include<cctype>
    using namespace std;
    
    void main() {
        cout << "Enter text for analysis,and type @ to terminate input."<<endl;
        char ch;
        int space = 0, digit = 0, chars = 0, punct = 0, others = 0;
    
        cin.get(ch);
        while (ch!='@')
        {
            if (isalpha(ch))        chars++;
            else if (isspace(ch))    space++;
            else if (isdigit(ch))    digit++;
            else if (ispunct(ch))    punct++;
            else    others++;
            cin.get(ch);
        }
        cout << chars << " letters,"
            << space << " whitespace,"
            << digit << " digit,"
            << punct << " punctuations,"
            << others << " others." << endl;
        system("pause");
    }

    程序清单6.13

    #include<iostream>
    using namespace std;
    const int Max = 5;
    void main() {
        double fish[Max];
        cout << "Enter the weights of your fish.
    You may enter up to " << Max << " fish<q to terminate>." << endl;
        cout << "fish #1: ";
        int i = 0;
        while (i<Max&&cin >> fish[i])
        {
            if (++i < Max)
                cout << "fish #" << i + 1 << ": ";//i+1和++i不同,i+1对i的值没有影响
        }
        double total = 0.0;
        for (int j = 0; j < i; j++)//i=5
            total += fish[j];
        if (i == 0)
            cout << "No fish!" << endl;
        else
            cout << total / i << "=average weight of " << i << " fish" << endl;
        system("pause");
    }

    根据自己的习惯重新编写

    #include<iostream>
    using namespace std;
    const int Max = 5;
    void main() {
        double fish[Max],sum=0;
        cout << "Enter the weights of your fish.
    You may enter up to " << Max << " fish<q to terminate>." << endl;
        int i;
        for (i = 0; i < Max; i++)
        {
            cout << "fish #" << i + 1 << ": ";
            if (cin >> fish[i])//输入成功返回true
                sum += fish[i];
            else
                break;
        }
        if (i == 0)
            cout << "No fish!" << endl;
        else
            cout << sum/i<< "=average weight of " << i << " fish" << endl;
        system("pause");
    }

    程序清单6.14

    #include<iostream>
    using namespace std;
    const int Max = 5;
    void main() {
        double golf[Max],sum=0;
        cout << "Enter your golf scores.
    You must enter " << Max << " rounds." << endl;
        int i;
        for (i = 0; i < Max; i++)
        {
            cout << "round #" << i + 1 << ": ";
            while (!(cin>>golf[i]))
            {
                cin.clear();
                while (cin.get() != '
    ')
                    continue;
                cout << "Please enter a number:";
            }
            sum += golf[i];
        }
        cout << sum/Max<< "=average  score " <<Max<< " rounds" << endl;
        system("pause");
    }

    程序清单6.15(文本I/O)

    //文件输出(对程序而言)

    #include<iostream>
    #include<fstream>
    using namespace std;
    
    void main() {
        char automobile[50];
        int year;
        double a_price, d_price;
        
        //声明ofstream对象并将其同文件关联起来
        ofstream outFile;
        outFile.open("first.txt");
    
        cout << "Enter the make and model of automobile:";
        cin.getline(automobile, 50);//cin.getline:不断读取,直到遇到换行符(少于50个字符),在末尾加上一个空字符,换行符被丢弃
        cout << "Enter the model year:";
        cin >> year;
        cout << "Enter the original asking price:";
        cin >> a_price;
        d_price = 0.913*a_price;
    
        cout << fixed;//表示用一般的方式输出浮点数,比如num=0.00001,cout输出为1e-005,加了fixed后再输出就为0.000010
        cout.precision(2);//第一位精确,第二位四舍五入,比如num = 318.15,precision(2)为3.2e+02,precision(4)为318.2
        cout.setf(ios_base::showpoint);//强制显示小数点
        cout << "Make and model: " << automobile << endl;
        cout << "Year: " << year << endl;
        cout << "Was asking $" << a_price << endl;
        cout << "Now asking $" << d_price << endl;
    
        outFile << fixed;
        outFile.precision(2);
        outFile.setf(ios_base::showpoint);
        outFile << "Make and model: " << automobile << endl;
        outFile << "Year: " << year << endl;
        outFile << "Was asking $" << a_price << endl;
        outFile << "Now asking $" << d_price << endl;
    
        outFile.close();
        system("pause");
    }

    程序清单6.16

    //文件读入(对程序而言)

    #include<iostream>
    #include<fstream>//文件I/O
    #include<cstdlib>//exit()
    using namespace std;
    const int SIZE = 90;
    
    void main()
    {
        char filename[SIZE];
        ifstream inFile;//声明ifstream对象
        cout << "Enter name of data file:";
        cin.getline(filename, SIZE);
        inFile.open(filename);//关联文件
    
        if (!inFile.is_open())//文件打开失败
        {
            cout << "Could not open the file " << filename << endl;
            exit(EXIT_FAILURE);
        }
        double value, sum = 0.0;
        int count = 0;
    
        inFile >> value;
        while (inFile.good())//输入正确
        {
            ++count;
            sum += value;
            inFile >> value;
        }
        if (inFile.eof())
            cout << "End of file reached." << endl;
        else if (inFile.fail())
            cout << "Input terminated by data misamatch." << endl;
        else
            cout << "Input terminated for unknown reason." << endl;
        if (count == 0)
            cout << "No data processed." << endl;
        else {
            cout << "Items read: " << count << endl;
            cout << "Sum: " << sum << endl;
            cout << "Average: " << sum / count << endl;
        }
        inFile.close();
    
        system("pause");
    }

     

    要想正确运行,首先在源代码文件夹中创建一个包含double数字的文本文件。

    为何会少了最后一个数字17.5呢?

    在文本文件中,输入最后的文本17.5后应该按下回车键,然后再保存文件。

  • 相关阅读:
    laravel读excel
    React 还是 Vue: 你应该选择哪一个Web前端框架?
    React16版本的新特性
    你真的了解React吗
    express操作数据库
    跨域的九种解决方式
    Koa基本使用
    luogu3806 【模板】点分治1
    luogu2634 聪聪可可
    poj1741 Tree
  • 原文地址:https://www.cnblogs.com/little-monkey/p/7509597.html
Copyright © 2011-2022 走看看