第一章
1.hello world
#include "StdAfx.h"
#include <iostream>
#include <string>
int main()
{
std::cout<<"hello world!"<<std::endl;
return 0;
}
2.注释对不可嵌套
3.控制语句
3.1 while 具有迭代功能
while (condition) while_body_statement;
如果 condition 为真(表达式求值不为零),则执行while_body_statement。执行完后,再次测试 condition 。如果 condition 仍为真,则再次执行 while_body_statement。
while 语句一直交替测试 condition和执行 while_body_statement,直到 condition 为假为止。
3.2 for(定义初始化变量;循环条件;表达式)
{
语句体 //执行完语句体后才执行表达式,表达式i++和++i 在这里相同
}
#include <iostream>
#include <string>
//使用while和for计算从50加到100
int main()
{
int sum = 0;
for (int i = 50; i <= 100; ++i) //使用for循环计算50加到100
{
sum += i;
}
std::cout<<sum<<std::endl;
int t=50,plus=0;
while(t<=100) //使用while循环计算50加到100
{
plus+=t;
t++;
}
std::cout<<sum<<std::endl;
std::cin>>sum;
return 0;
}
#include <iostream>
#include <string>
int main() //输出10到0的自然数
{
int t=10;
for(int i=10;i>=0;i--)
{
std::cout<<i<<std::endl;
}
while(t>=0)
{
std::cout<<t;
--t;
}
std::cin>>t;
return 0;
}
3.3 if
#include "StdAfx.h"
#include <iostream>
#include <string>
int main() //输入一组数,输出负数的个数
{
int num,sum=0;
for(int i=1;i<=5;i++)
{
std::cout<<"请输入一个任意数字:"<<std::endl;
std::cin>>num;
if(num<0)
{
sum++;
}
}
std::cout<<"一共输入了"<<sum<<"个负数"<<std::endl;
std::cin>>num;
return 0;
}
感觉不太对,不太符合题意,查看别人的代码后发现一个新的东西:ctrl+z 按下后可停止输入,重新写一遍:
int main() //输入一组数,输出负数的个数
{
int num,count=0;//num没有初始值
std::cout<<"输入一组数字,按ctrl+z后可停止输入:"<<std::endl;
while(std::cin>>num)
{
if(num<0)count++;
}
std::cout<<"一共输入了"<<count<<"个负数"<<std::endl;
return 0;
}
如果使用一个特定的数字作为退出标志呢?
#include <iostream>
#include <string>
int main() //输入一组数,输出负数的个数
{
int num=0,count=0;//num必须付初始值
std::cout<<"输入一组数字,当输入911后可停止输入:"<<std::endl;
while(num!=911) //使用911当暗号退出
{ std::cin>>num;
if(num<0)count++;
}
std::cout<<"一共输入了"<<count<<"个负数"<<std::endl;
std::cin>>count;
return 0;
}
Exercise1.18:
编写程序,提示用户输入两个数并将这两个数范围内的每个数写到标准输出。
#include <iostream>
#include <string>
int main() //输入两个数,输出这两个数范围内的每个数
{
int i=0,j=0,lower=0,uper=0;
std::cout<<"输入两个数,确定范围"<<std::endl;
std::cin>>i>>j;
if(i>j)
{
lower=j;uper=i; //小数赋值给lower,大数赋值给uper
}
else
{
lower=i;uper=j;
}
std::cout<<"两数范围内的每个数为:";
for(lower;lower<=uper;lower++)
{
std::cout<<lower<<' '; //输出两数范围内的每个数
}
std::cin>>i; //执行时让窗口停住
return 0;
}
Exercise1.19:
如果上题给定数 1000 和 2000,程序将产生什么结果?修改程序,使每一行输出不超过 10 个数。
#include "StdAfx.h"
#include <iostream>
#include <string>
int main() //输入两个数,输出这两个数范围内的每个数
{
int i=0,j=0,lower=0,uper=0;
std::cout<<"输入两个数,确定范围"<<std::endl;
std::cin>>i>>j;
if(i>j)
{
lower=j;uper=i; //小数赋值给lower,大数赋值给uper
}
else
{
lower=i;uper=j;
}
std::cout<<"两数范围内的每个数为:";
for(lower;lower<=uper;lower++)
{
for(int t=0;t<10;t++)
{
std::cout<<lower<<' '; //输出两数范围内的每个数,每行输出10个数
++lower;
}
std::cout<<std::endl;
}
std::cin>>i; //执行时让窗口停住
return 0;
}