【例3.1】各行小数点对齐
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a=123.456,b=3.14159,c=-3214.67;
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);
cout<<setw(10)<<a<<endl;
cout<<setw(10)<<b<<endl;
cout<<setw(10)<<c<<endl;
return 0;
}
【运行结果】
===============================================================================================
【例3.2】输出单个字符
#include <iostream>
using namespace std;
int main()
{
char a,b,c;
a='B';b='O';c='Y';
putchar(a);putchar(b);putchar(c);putchar('\n');
putchar(66);putchar(79);putchar(89);putchar(10);
return 0;
}
【运行结果】
===============================================================================================
【例3.3】 输入单个字符
#include <iostream>
using namespace std;
int main()
{
char c;
c=getchar(); putchar(c+32); putchar('\n');
return 0;
}
【运行结果】
=================================================================================================
【例3.4 】用scanf和printf函数进行输入和输出
#include <iostream>
using namespace std;
int main()
{
int a; float b; char c;
scanf("%d %c %f",&a,&c,&b); //注意在变量名前要加地址运算符&
printf("a=%d,b=%f,c=%c\n",a,b,c);
return 0;
}
【运行结果】
===================================================================================================
【例3.5】求一元二次方程式ax2+bx+c=0的根。a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac≥0。
#include<iostream>
#include<cmath>//cmath为新标准,提倡使用新标准
using namespace std;
int main()
{
float a,b,c,x1,x2;
cin>>a>>b>>c;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);//【教材有误】教程上的输出结果有误
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
return 0;
}
【运行结果】
===================================================================================================
【例3.6】求三角形的面积。
#include <iostream>
#include <cmath>
#include <iomanip> //使用I/O流控制符要包含头文件iomanip
using namespace std;
int main()
{
double a,b,c;
cout<<"please enter a,b,c:";
cin>>a>>b>>c;
if (a+b>c && b+c>a && c+a>b)
{
double s,area;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<setiosflags(ios::fixed)<<setprecision(4); //指定输出的数包含4位小 数
cout<<"area="<<area<<endl;
}
else cout<<"it is not a trilateral!"<<endl;
return 0;
}
【运行结果】
==========================================================================================================
【例3.7 】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符
#include<iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
ch=(ch>='A' && ch<='Z')?(ch+32):ch;
cout<<ch<<endl;
return 0;
}
【运行结果】
=====================================================================================================
【例3.8】编写程序,判断某一年是否为闰年。
#include <iostream>
using namespace std;
int main()
{
int year;
bool leap;
cout<<"please enter year:";
cin>>year;
if (year%4==0)
{
if(year%100==0)
{
if (year%400==0)
leap=true;
else leap=false;
}
else
leap=true;
}
else
leap=false;
if (leap)
cout<<year<<" is ";
else cout<<year<<" is not ";
cout<<" a leap year."<<endl;
return 0;
}
【运行结果】
=================================================================================================
【例3.9】 运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下: s<250km 没有折扣 250≤s<500 2%折扣 500≤s<10005%折扣 1000≤s<20008%折扣 2000≤s<3000 10%折扣 3000≤s 15%折扣
设每公里每吨货物的基本运费为p(price的缩写),货物重为w(wright的缩写),距离为s,折扣为d(discount的缩写),则总运费f(freight的缩写)的计算公式为 f = p * w * s * (1 - d) 。
#include <iostream>
using namespace std;
int main()
{
int c,s;
float p,w,d,f;
cout<<"please enter p,w,s:";
cin>>p>>w>>s;
if(s>=3000) c=12;
else c=s/250;
switch (c)
{
case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*w*s*(1-d/100.0);
cout<<"freight="<<f<<endl;
return 0;
}
【运行结果】
=======================================================================================================
【例3.10】 求1+2+3+…+100。
#include <iostream>
using namespace std;
int main()
{
int i=1,sum=0;
while (i<=100)
{
sum=sum+i;
i++;
}
cout<<"sum="<<sum<<endl;
return 0;//【教材有误】教材中少了这一行
}
【运行结果】
==================================================================================================
【例3.11】 用do-while语句求1+2+3+…+100。
#include <iostream>
using namespace std;
int main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while (i<=100);
cout<<"sum="<<sum<<endl;
return 0;
}
【运行结果】
===================================================================================================