变量版
#include
#include //包含标准库的头文件
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using namespace std;
int main()
{
int chinese=58,maths=90,english=73;
int sum = chinese+maths+english;
double average = sum /3.0;
cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“average”<<endl ;
cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<average<<endl ;
chinese=66,maths=52,english=83;
sum = chinese+maths+english;
average = sum /3.0;
cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“average”<<endl ;
cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<average<<endl ;
return 0;
}
数组版 第四节课和第五节课一起讲的
#include
#include //包含标准库的头文件
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using namespace std;
int main()
{
const int length = 3;
int grades[length] = {58,90,73};
int chinese=58,maths=90,english=73;
int sum = 0 ;
double average = 0.0;
//第一个元素grades[0];数组名grades(代表首元素的地址值)与0在执行下表运算“[]”
//地址值与整数执行下表运算的结构,是从地址值开始,跳过整数个同类型的存储单元空间之后到达的存储空间;
//下表是 :y元素与首元素的偏移量
/*
cout<<(&grades[1])[1]<<endl;
cout<<1[(&grades[1])]<<endl;
cout<<(&grades[2])[-1]<<endl;
*/
//sum = grades[0]+grades[1]+grades[2];//chinese+maths+english;
//sum = sum +grades[0]; //读sum旧的值,读grades[0],写sum
//sum = sum +grades[1]; //读sum旧的值,读grades[1],写sum
//sum = sum +grades[2]; //读sum旧的值,读grades[2],写sum
//抽象成以下格式
//sum = sum +grades[index]; //循环体语句
//循环语句 :for while do-while
//for适合:事先已经确定循环次数
//while适合:事先无法确认循环次数
//do——wihle:至少确定循环一次,无法确认循环次数
/*
for(表达式1;表达式;表达式3)
语句 //循环体只能是一条合法语句
*/
for(int index=0;index<length;index++)
sum=sum+grades[index];
//对于内置类型(整数类型 浮点数类型,逻辑类型等等)
//++的快慢区别不大
//对于自定义类型(类类型 结构类型 联合类型等等)
//++的快慢区别较大
//index++较慢
//obj++等价于obj,operator++(0),执行过程需要产生临时的存储空间
//++index较快
//++obj等价于obj。operator++()不产生
//求平均值
//average = 1.0*sum /length;
average = static_cast(sum)/length;
//static_cast<转换的目的类型>(表达式)
cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“sum”<<’\t’<<“average”<<endl ;
//cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<sum<<’\t’<<average<<endl ;
for(int index=0;index<length;index++)
{
cout<<grades[index]<<’\t’;
}
cout<<sum<<’\t’<<average<<endl;
//grades = {66,52,83}; // 错误 grades 是首元素的地址值
//任何地址都是系统自行分配的,都被认定成常量
//常量不能被赋值;
//chinese=66,maths=52,english=83;
sum = 0;
grades[0] = 66;
grades[1] = 52;
grades[2] = 73;
//sum = grades[0]+grades[1]+grades[2];//chinese+maths+english;
//average = sum /3.0;
//cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<sum<<’\t’<<average<<endl ;
for(int index=0;index<length;index++)
sum=sum+grades[index];
average = static_cast(sum)/length;
for(int index=0;index<length;index++)
{
cout<<grades[index]<<’\t’;
}
cout<<sum<<’\t’<<average<<endl;
return 0;
}
//玩具程序:很少的数据量
//模拟实际程序:很大的数据量
// 软件工程 :与软件生产有关的理论上的经验
// 软件应该满足五个要求:
//没有错误
//及时交付
//控制在预算之内
//当客户的需求发生改变时易于改变
//满足客户需求
//尽可能去除代码里的重复
//一旦存在重复的代码段,对这些代码段做改动很困难,重复的一致性改动
//c++存储字符串序列的方式:
//1, 字符串字面量:“ZHangsan”
//2 字符数组: char namep[] = “zhangsan”;
// chgar name[] = {‘z’,‘h’…,’\0’};
//3 字符串对象 :string name = “zhangSan”;
//数组是内置的最简单的数据结构 属于顺序表
//数据结构:数据以那种组织方式被存储,将数据以某种方式组织起来的一种结构
//序列结构 :顺序表 链表
//结合了具体操作特点的数据结构:栈 队列
//非顺序结构 : 树 映射 集合