C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

第二章 基本编程语句

不完全整理,只用于作者自己的查漏补缺!

2.1 说明语句 Declarative Statements

1、变量:C++内部数据类型定义而产生

对象:先由程序员定义类,然后再据此创建(定义)实体而产生的

本质没有差别,都是占据空间的数据描述体。

2、说明语句分为定义语句和声明语句。

定义不但声明了名称,还给名称分配了存储空间,使之成为一个能存放数据的实体。

大多数情况下,代表数据的名称使用定义语句,只有在复杂的程序结构中为了说明一个名称可以在各处共享,而又要避免多处定义所造成的空间冲突,才使用声明。

2.1.2 函数声明和定义 Function Declaration & Definition

#include<iostream>
using namespace std;
//----------------------
void sphere();
//----------------------
int main(){
sphere();
}//----------------------
void sphere(){
  double radius;
  cout<<"please input radius: ";
  cin>>radius;
  if(radius<0) return;
  cout<<"the result is"<<radius*radius*3.14*4<<"n";
}

函数使用前要先声明。

2.2 条件语句 Conditional Statements

1、条件不能写成0<x<50,而要写成0<x&&x<50

2、switch括号中的表达式只能是整形、字符型或枚举型

switch (ch){
  case'-': b=-b;
  case'+': a=a+b; break;
  case'1':
  case'2':
  case'3':a=1; break;
  default: a=0;
}

3、

for(int i=1;i=1;++i){   cout<<char('A'+i-1); } //或者 for (char ch='A';ch<'A'+n;++ch){   cout<<ch; }

2.5.2 流状态Stream States

与<<连用的设置方式,要包含头文件iomanip

setw(int)

setfill(char)

setprecision(int)

//输出M的倒三角
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
  for(int n=1;n<=10;++n)
    cout<<setfill(' ')<<setw(n)<<" "<<setfill('M')<<setw(21-2*n)<<"M"<<endl;
}
//==============
//或者用string类型定义重复n次字符的字串
for (int n=1;n<=10;++n)
    cout<<string(n,' ')+string(21-2*n,'M')+"n";

2.5.3 文件流 File Streams

//复制文件
//============
#include<fstream>
using namespace std;
int main(){
  ifstream in("a.in");
  ofstream out("a.out");
  for(string str;getline(in,str); )
    out<<str<<endl;  
}

使用筛法判断素数

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

2.7 再做循环设计

//级数逼近 Progressing Approximation
//======================
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
  double sum=0,item=1;
  for(int i=1;abs(item)>1e-6;++n){
    item*=(-1.0)*(2*n-3)/(2*n-1);
    sum+=item;
  }
  cout<<"Pi = "<<setiosflags(ios::fixed)<<setprecision(6)<<sum*4<<endl;
}

2.9 练习

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
    int param=0;
    cin>>param;
    double sum=1+param,item=param;
    for (int n=2;abs(item)>1e-8;n++){
        item *= (-1.0) * param /n;
        sum+=item;
    }
    cout<<setiosflags(ios::fixed)<<setprecision(8)<<sum<<endl;
}

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
using namespace std;
int main(){
    int param;        int sum=0,item=1;
    for (int i=1;i<=12;i++){
        item*=i;
        sum+=item;
    }
    cout<<sum;
}

3、编程求所有“水仙花数(narcissus number)”。所谓“水仙花数”是指一个三位数,其各个数字立方和等于该数本身。例如,153是水仙花数,因为153=1^3+5^3+3^3。

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    int num,sum;
    for(int i=1;i<=9;i++){
        for (int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                num=i*100+j*10+k;
                sum=pow(i,3)+pow(j,3)+pow(k,3);
                if(num==sum){
                    cout<<sum<<endl;
                }
            }
        }
    }
}

4、编程求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的包括1在内的所有不同因子之和。例如,6是完数,因为6=1+2+3。

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    cout<<1<<endl;
    int sum;
    for(int num=4;num<1000;num++){
        sum=1;
        if(float(int(sqrt(num)))==sqrt(num)){
            sum+=int(sqrt(num));
        }
        for (int i=2;i<sqrt(num);i++){
            if(num%i==0){
                sum+=i;
                sum+=(num/i);
            }
        }
        if(sum==num){
            cout<<num<<endl;
        }
    }
}

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    int num,flag;
    for(int i=1;i<=9;i++){
        for(int j=0;j<=9;j++){
            flag=1;
            num=i*100+j*10+i;
            for(int k=2;k<=int(sqrt(num));k++){
                if(num%k==0){
                    flag=0;
                }
            }
            if(flag) cout<<num<<endl;
        }
    }
}

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    int peaches=1;
    for (int i=0;i<9;i++){
        peaches+=1;
        peaches*=2;
    }
    cout<<peaches;
}

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
using namespace std;
int main(){
    int num_star=0;
    int num_space=0;
    for (int i=1;i<=19;i++){
        if(i*2-1>19){
            num_star=(19-i)*2+1;
            num_space=i-9;
        }else{
            num_star=i*2-1;
            num_space=11-i;
        }
        for (int j=0;j<num_space;j++){
            cout<<" ";
        }
        for (int j=0;j<num_star;j++){
                cout<<"%";
            }
        for (int j=0;j<num_space;j++){
            cout<<" ";
        }
        cout<<"n";
    }  
}

C++基本编程语句|第一部分_基础编程(2)|c++程序设计(第二版)钱能

#include <iostream>
#include<iomanip>
using namespace std;
int main(){
    for(int i=1;i<=10;i++){
        cout<<setfill(' ')<<setw(11-i)<<" "
        <<setfill('#')<<setw(i)<<"#"<<setfill(' ')<<setw(4)<<" "
        <<setfill('$')<<setw(i)<<"$"<<endl;
    }
}

原文链接: https://www.cnblogs.com/Amanda-zxy/p/15783372.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/184773

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 上午10:48
下一篇 2023年2月12日 上午10:48

相关推荐