作业1.
例3.1 无格式输入cout举例一
/*例3.1*/
#include<iostream>
using namespace std;
void main()
{
cout<<"this is a program."<<endl;
cout<<"this"<<" is"<<" a"<<" program.\n";
}
例3.2 无格式输入cout举例二
/*例3.2*/
#include<iostream>
using namespace std;
void main()
{
int a=10;
int b=20;
int c=30;
cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
cout<<"(a+c)/(2*b)="<<(a+c)/(2*b)<<endl;
}
例3.5 使用控制符输出八进制,十进制,十六进制数
/*例3.5*/
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
int x=30,y=125,z=256;
cout<<"Decimal(十进制):"<<'\t'<<dec
<<"x="<<x<<"\t\t"
<<"y="<<y<<"\t\t"
<<"z="<<z
<<endl;
cout<<"Octal(八进制):"<<'\t'<<oct
<<"x="<<x<<"\t\t\t"
<<"y="<<y<<"\t\t"
<<"z="<<z
<<endl;
cout<<"Hexadecimal(十六进制):"<<'\t'<<hex
<<"x="<<x<<"\t\t"
<<"y="<<y<<"\t\t"
<<"z="<<z
<<endl;
}
/* 例3.20 编写分段函数的值,y={1(x>0),-1(x<0),0(x=0)} */
#include<iostream>
using namespace std;
void main()
{
int x,y;
cout<<"请输入x的值:";
cin>>x;
if(x)
{
if(x>0)
y=1;
else
y=-1;
}
else
y=0;
cout<<"y="<<y<<endl;
}
例3.13输入一个正整数进行逆转
/*例3.13*/
#include<iostream>
using namespace std;
void main()
{
int n,i,j,k,result;
cout<<"输入一个三位数:";
cin >>n;
int temp=n;
i=temp/100; //求百位数i
temp-=i*100,j=temp/10; //求十位数j
k=temp-j*10; //求个位数
result=k*100+j*10+i;
cout<<n<<"的逆转数为:"<<result<<"\n"; //求逆转数result
}
例3.20
/* 例3.20 编写分段函数的值,y={1(x>0),-1(x<0),0(x=0)} */
#include<iostream>
using namespace std;
void main()
{
int x,y;
cout<<"请输入x的值:";
cin>>x;
if(x)
{
if(x>0)
y=1;
else
y=-1;
}
else
y=0;
cout<<"y="<<y<<endl;
}
例3.23
/* 例3.23 求1到999之和 */
#include<iostream>
using namespace std;
void main()
{
int sum=0,n;
n=1;
while(n<=999)
{
sum+=n;
n++;
}
cout<<"sum="<<sum<<endl;
}
例3.29
/* 输出100——150之间不能被3整除的数 */
#include<iostream>
using namespace std;
void main()
{
int i,count=0;
for(i=100;i<=150;++i)
{
if(i%3==0)
continue;
cout<<i<<" ";
count++;
if(count%6==0)
cout<<endl; //一行输出6个数据
}
cout<<endl;
}
例3.30 输出100以内的素数
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,n,count=0;
for(n=2;n<200;++n)
{
for(i=2;i<n;++i)
if(n%i==0)
break;
if(i==n)
{
cout<<setw(4)<<n;
count++;
if(count%12==0)
cout<<endl;
}
}
return 0;
}
例3.31
/* 输出所有的三位数水仙花数 */
#include<iostream>
using namespace std;
void main()
{
int n,a,b,c;
for(n=100;n<1000;n++)
{
a=n/100;
b=n%100/10;
c=n%10;
if(a*a*a+b*b*b+c*c*c==n)
cout<<n<<"是“水仙花数”"<<endl;
}
}
例3.33
/* 例3.33 求数列:1 1 2 3 5 8...的前40个数 */
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
int f1=1,f2=1;
int i;
for(i=1;i<=20;i++)
{
cout<<setw(12)<<f1<<setw(12)<<f2;
if(i%2==0)
cout<<endl;
f1=f1+f2;
f2=f2+f1;
}
}
例3.34
/* 将任意自然数a的立方表示为a个连续奇数之和 */
#include<iostream>
using namespace std;
void main()
{
int jishu,a;
cout<<"请输入一个自然数a:";
cin>>a;
if(a<1)
{
cout<<"输入有误!"<<endl;
exit(0);
}
jishu=a*(a+1)-1;
int sum=jishu;
cout<<"a*a*a="<<jishu;
for(int i=1;i<a;i++)
{
jishu-=2;
sum+=jishu;
cout<<"+"<<jishu;
}
if(a==1)
cout<<endl;
else
cout<<"="<<sum<<endl;
}
例3.35
/* 例3.35 求1!+2!+3!+...+10!之和 */
#include<iostream>
using namespace std;
void main()
{
int sum,fact,n,i;
sum=0;
for(n=1;n<=10;n++)
{
fact=1;
for(i=1;i<=n;i++)
fact*=i;
sum+=fact;
}
cout<<"sum="<<sum<<endl;
}
习题5
/*** 求自然对数e的近似值,要求其误差小于1E-6 ***/
#include <iostream>
using namespace std;
int main()
{
double i,e;
i=1.0,e=1.0;
int n=1;
for(;i>=1E-6;n++)
{
i=i/n;
e+=i;
}
cout<<"e="<<e<<endl;
return 0;
}
习题6.求圆周率的近似值,要求其误差小于1E-6.
#include <iostream>
using namespace std;
int main()
{
double pi=1.0;
double flag =-1.0;
for(int i=3;1.0/i>=1E-6;i+=2)
{
pi+=flag/i;
flag=-flag;
}
cout<<"圆周率pi的近似值为:"<<4*pi<<endl;
return 0;
}
练习8.输出菱形
#include<iostream>
using namespace std;
void main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=(4-i)*2;j>0;j--)
cout<<" ";
for(j=1;j<=2*i-1;j++)
cout<<"*"<<" ";
cout<<endl;
}
for(i=3;i>=1;i--)
{
for(j=(4-i)*2;j>0;j--)
cout<<" ";
for(j=1;j<=2*i-1;j++)
cout<<"*"<<" ";
cout<<endl;
}
}
其余作业见另一篇博文。。。