C++和算法入门——1

本文介绍了C++编程的基础,包括数据类型及其字节长度计算、算数运算符、求两个整数的积和平均值、字符与字符串处理,以及getchar()和putchar()函数的使用。通过实例演示了如何进行基本的输入输出和字符串操作。
摘要由CSDN通过智能技术生成

算法:1.即把进行某一工作的方法和步骤称为算法。

           2.对事物本质的数字抽象。

第一章C++入门


1.1我的第一个程序(乐,每个语言的第一步)

#include <bits/stdc++.h>  
//表示编写的代码要包含子目录bits下的一个名为“stdc++.h”的头文件
using namespace std;//表示使用的命名空间为“std”
int main()
/*“main”的中文含义是“主要的”,C++程序里,必须有且只能有
一个名为“main”的函数(主函数)*/
{
	cout<<"hello,world\n";/*cout用于输出紧随操作符“<<”后的双引号中的字符串,输出的
字符串必须包含在双引号之中,其中“\n”表示换行*/
	return 0;//0表示一切运行正常
}

1.2数据类型及运算(了解即可)

 不同的编译器支持的各数据类型的字节长度可能不同,sizeof() 可用于获取各数据类型的字节长度。

#include <bits/stdc++.h> 
using namespace std;
int main()
{
	cout<<"int的字节长度为"<<sizeof(int)<<"\n";
cout<<"short的字节长度为"<<sizeof(short)<<"\n";
cout<<"long long的字节长度为"<<sizeof(long long)<<"\n";
	return 0;
}

输出结果:

int的字节长度为4
short的字节长度为2
long long的字节长度为8

算数运算符

+(加)、-(减)、*(乘)、/(除)、%(取余)

C++语言以圆括号代替数学中的方括号和花括号,程序运行时将按 由内到外的顺序计算圆括号里的值。例如数学表达式2×{4-[3-(2- 9)]},转换成C++语言中的表达式为2*(4-(3-(2-9)))。

诸如x 2+y 2这样的表达式,转换成C++语言中的表达式为 x*x+y*y。

 1.2.1 求两个整数的积和平均值(calc)

试编写一个程序,使得程序运行时,用键盘输入两个整数(两个 整数之间以一个或多个空格间隔)后按Enter键,计算机显示器上输出 这两个整数的积和平均值。

/*
  这个程序的名字叫求两整数积及平均值,它真的太强大了!好吧,
  这么说有点无聊,但反正是注释语句,随便怎么写,不影响程序运行的
*/
#include <bits/stdc++.h>
using namespace std;

int main()
{
  int a,b,c;                    //定义变量 a,b,c,此时a,b,c的值未知
  cin>>a>>b;                    //输入a和b的值
  c=a*b;                        //计算a和b的乘积,把结果赋值给c
  cout<<a<<"*"<<b<<"="<<c<<endl;//输出的变量和字符串要用"<<"隔开
  cout<<(a+b)/2<<endl;          //整数除整数会舍去小数部分,自动取整
  return 0;
}

 “/*…… */”用作C++代码的多行注释

“//”用作C++代码的单行注释

 第11行是输入语句,cin表示程序运行时,用键盘输入“>>”右边 的变量的值。 cin>>a>>b;表示用键盘输入两个整数。

输入/输出的各变量之间应使用“>>”或“<<”分隔。

第13行中的endl代表换行,类似于换行符“\n”。 

初学者容易将表达式ax3+bx2+cx+d写成ax^3+bx^2+cx+d这样的错误 形式,其正确形式应该为a*x*x*x+b*x*x+c*x+d。

1.3字符和字符串 

 字符变量用于存放单个字符,用单引号标注,例如 'a'、'x'、 '?'、 '$'等

字符串变量用于存放任意多个字符,用双引号标注,例 如"Hello,world!"、"a" 、"$34567"等

每一个字符串的结尾有一个“字符串结束标志”,以便系统判断 字符串是否结束。C++语言规定以字符'\0'作为字符串结束的标志,'\0'占1字节。例如,如图1.17所示,字符串"Hello"的实际存储空间不是5字节,而是6字节,最后一个字节为'\0'。但'\0'是隐含的,输出时不会输出'\0',赋值时也不必手动加'\0',这些系统会自动进行后台处理。 

字符变量用char定义 

不要将字符变量和字符串变量混淆,例如,char c="a"这种把字 符串"a"赋给只能容纳一个字符的字符变量c的语句是错误的,因为字 符串"a"实际包含两个字符'a'和'\0'。

 字符在内存中以该字符相对应的ASCII值存储,它的存储形式与整 数的存储形式类似,这样使得字符型数据和整型数据可以通用。一个 字符既可以以字符形式输出,也可以以整数形式输出,还可以对它们 进行算术运算。

每一个小写字母比它对应的大写 字母的ASCII值大32。

//字符变量与整数的通用性演示
 #include <bits/stdc++.h>
using namespace std;
 
int main()
 {
char c1,c2;
c1=65; //此处用数字而不是字符赋值
c2=66; //此处用数字而不是字符赋值
cout<<c1<<" "<<c2<<endl; //因为c1、c2为字符类型,所以默认输出字符 
cout<<int(c1)<<" "<<int(c2)<<'\n'; //int()表示强制转换
return 0;
}

 为了更好地处理字符串,C++提供了string类,它提供了添加、删除、插入和查找等丰富的操作方法。

//string类的部分操作方法
#include <bits/stdc++.h>
using namespace std;

int main() 
{
	string s="Hi,..morn";  //定义了名为s的string类并初始化
	s=s+"ing";  //尾部添加字符串"ing"
	cout<<"添加字符串:"<<s<<endl;  //输出 
	s.erase(3,2);   // 删除第3个字符后的2个字符
	cout<<"删除字符串:"<<s<<endl;  //输出 
	int f=s.find("Hi,");  //查找“Hi,”在s中的位置,-1为无法找到
	s.insert(f+3,2,'G');   //在第3个字符后插入单个字符'G'2次
    cout<<"插入两字符:"<<s<<endl; //输出"Hi,GGmorning"
	s.insert(5,",MM,"); //在第5个字符后插入字符串",MM,"
	cout<<"插入字符串:"<<s<<endl; //输出”Hi,GG,MM,morning”
	string v=s.substr(4,3); //取s中第4个字符后的3个字符给v
	cout<<"字符串子串:"<<v<<endl; //输出"G,M"
	cout<<"string长度:"<<v.length(); //输出3,即v的长度
	return 0;
}

结果:添加字符串:Hi,..morning
           删除字符串:Hi,morning
           插入两字符:Hi,GGmorning
           插入字符串:Hi,GG,MM,morning
           字符串子串:G,M
           string长度:3

 1.4 getchar()和putchar()

getchar()函数(字符输入函数)的作用是从终端(键盘)获取输入的 字符
putchar()函数(字符输出函数)的作用是向终端(显示器)输出 字符 。例如下面的程序在运行时,如果用键盘输入字符后按Enter键,显示器上就会输出该字符。
 //getchar()函数和putchar()函数的使用演示
 #include <bits/stdc++.h>
 using namespace std; 
 int main()
 {
     char c;
     c=getchar(); //输入字符赋值给c
     putchar(c); //输出字符变量c
     return 0;
 }

cin读取一行字符串时,遇到 空格 就会停止。如果读取一行包含空格符的字符串,可以使用getline()函数。例如将“I am here”赋值给string类的例程如下所示。
 1 //使用getline()函数读取string类字符串
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 
 5 int main()
 6 { 
 7 string str; //string类可用getline()函数读取
 8 getline(cin,str); //读取一行包含空格符的字符串赋值给str
 9 cout<<str;
10 return 0;
11 }

 其他进制、精度控制见书P74

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值