#315. 笔记

笔记

No testdata at current.

八种数据基础类型

整型:

short 短整型 2Byte %hd

int 整型 4Byte %d

long 长整型 4Byte %ld

long long 超长整型 8Byte %lld

浮点数:

float 单精度浮点数 4Byte %f

double 双精度浮点数 8Byte %lf

其它:1Byte

char 字符型 %c 9 '9' 'w' "我"

bool 布尔类型 %d 非零->true->1 0<->false

复习Day01

基础数据类型 2+2+2 6

输入输出

  1. 定义变量

  2. 输入: scanf("占位符1 占位符2",&变量1,&变量2);

  3. 输出: printf("a + b = %lf",变量);

    1. 字符宽度 %8d:右对齐、%-8d:左对齐

    2)小数点保留几位 默认:6位 %f %lf %.3f 保留三位 %.10lf

  4. 强制类型转换 (int)a

  5. ASCII码 表 ASCII<-相互转换->字符 大小写转换

  6. 运算符与表达式

    1. 算术运算符 % /
    2. 逻辑运算符 && || ^
    3. 自加、自减运算

两大判断语句

if判断

语法

  1. if判断
if(判断条件){
    //条件成立时执行
}
  1. if……else……
if(判断条件){
    //条件成立时执行
}else{
    // 条件不成立时执行
}
  1. if……else if……else……
if(条件1){
    //条件1成立时执行
}else if(条件2){
    // 条件2成立时执行
}else if(条件3){
    // 条件3成立时执行
}else{
    //所有条件均不成立时执行
}

switch 语句

语法

switch(变量){
    case 值1: //变量等于值1时执行
    case 值2: //变量等于值2时执行
    case 值3: //变量等于值3时执行
    ……
    default: //所有值都不匹配时执行
}

举例

成绩判断:输入一个分数(1-10),输出对应分数的等级 6分以下 E, 6分D, 7分C,8分B,9分或者10分A。

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

int main(void){
	int score;
	scanf("%d",&score);
	switch(score/10){
		case 10:
		case 9:
			printf("A");
			break;
		case 8:
			printf("B");
			break;
		case 7:
			printf("C");
			break;
		case 6:
			printf("D");
			break;
		default:
			printf("E");
	}
	return 0;
}

小玉家的电费

#include<cstdio>
#include<iostream>
using namespace std;
#define L1 0.4463
#define L2 0.4663
#define L3 0.5663
int main(void){
	int n;
	double money;
	scanf("%d",&n);
	if(n<=150){
		money=n*L1;
	}else if(n<=400){
		money=150*L1+(n-150)*L2;
	}else{
		money=150*L1+250*L2+(n-400)*L3;
	}
	printf("%.1lf",money);
	return 0;
}

循环语句 (两大循环)

for循环

语法

for(;;){

}

小括号中有且仅有两个分号

for(1初始化语句;2循环条件;4自加自减语句){
     //3循环条件成立时执行
}

执行顺序:1 2 3 4 2 3 4 2 3 4……

堂训 1-100 输出

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

int main(void){
	for(int i=1;i<=100;i++){
		printf("%d\n",i);
	}
	return 0;
}

堂训2 输入一个数字n,打印一行n个星号

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

int main(void){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		printf("*");
	}
	return 0;
}

堂训3 输入一个数字n,打印n行,每行n个星号

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

int main(void){
	int n;
	scanf("%d",&n);
	for(int j=0;j<n;j++){
		for(int i=0;i<n;i++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

堂训4 输入一个数字n,打印n行星号组成的三角形如下

输入:3 输出:

*
**
***

代码:

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

int main(void){
	int n;
	scanf("%d",&n);
	for(int j=1;j<=n;j++){
		for(int i=1;i<=j;i++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

堂训5 输入一个数字n,打印n行星号组成的三角形如下

输入:3

输出:

*
 **
***

代码

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

int main(void){
	int n;
	scanf("%d",&n);
	for(int j=1;j<=n;j++){
		for(int i=1;i<=n-j;i++){
			printf(" ");
		}
		for(int i=1;i<=j;i++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

堂训6 输入一个数字n,打印n行星号组成的三角形如下

输入:3

输出:

*
 ***
*****

代码:

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

int main(void){
	int n;
	scanf("%d",&n);
	for(int j=1;j<=n;j++){
		for(int i=1;i<=n-j;i++){
			printf(" ");
		}
		for(int i=1;i<=2*j-1;i++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

while循环

语法

while(循环条件){
    //循环条件成立时执行
}

do while循环

语法

do{
    //一定会执行一次,之后条件成立则执行。
}while(循环条件);
//注意末尾有个分号

一维数组

定义:

  1. int a[105];//不带初始化
  2. int a[10]={1,2,3,4,5,6,7,8,9,10};//带初始化
  3. char a[5]={'a','b','c','d','e'};//字符数组带初始化定义

二维数组

定义:

  1. int a[3][2];
  2. int a[3][2]={{1,2},{3,4},{5,6}};

字符串

定义

string a;

string a="hello";

cin>>a;//获取按照空格分割的字符串

getline(cin,s);//获取带空格的一整行字符串