C++第三周作业

作业一:课本各例题

例题一

/***例题1.功能:显示输出各种变量所占的节数***/

#include "iostream"
using namespace std;
int main()
{
	cout<<"number of bytes in int is:"<<sizeof(int)<<endl;
	cout<<"number of bytes in long int is:"<<sizeof(long)<<endl;
	cout<<"number of bytes in short is:"<<sizeof(short)<<endl;
	cout<<"双精度型的字节数是:"<<sizeof(double)<<endl;

	return 0;
}


例题二

/***功能:布尔类型使用举例***/
#include<iostream> 
#include<iomanip> 
using namespace std;  
int main()  
{  
	bool a = true;
	cout<<a<<endl;
	cout<<boolalpha<<a<<endl;
	cout<<a+5<<endl;
	a=0;
	cout<<"执行语句a=0;后a的值为:"<<boolalpha<<a<<endl;
	a=0.0;
	cout<<"执行语句x=0.0;后a的值为:"<<boolalpha<<a<<endl;
    return 0;  
} 


 例题2.2

/****功能:赋值表达式语句的使用****/
#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d ;
	a=4;
	b=a;
	a=5;
	c=d=6;
	c*=a;
	d%=a+b;
	cout<<"a="<<a<<endl
		<<"b="<<b<<endl
		<<"c="<<c<<endl
		<<"d="<<d<<endl;
	return 0;
}


 

例题2.2加强版

/****功能:赋值表达式语句的使用****/
#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d ;
	a=4;
	b=3;
	b*=a;
	c=(a+b)/2;
	d=a*c/b;
	a=c*d;
	cout<<"a="<<a<<endl
		<<"b="<<b<<endl
		<<"c="<<c<<endl
		<<"d="<<d<<endl;
	return 0;
}

如果输入的变量为双精度型,则输出结果为

结论;使用运算符号"/",如果两个数都为整型,则输出结果小数点会被截掉

 

例题2.3

#include<iostream>
using namespace std;
int main()
{
	short i,j,m,n;
	i=1000;
	j=1000;
	m=i+j;
	n=i*j;
	cout<<"m="<<m<<endl
		<<"n="<<n<<endl;
	return 0;
}


 

输出结果为 如果把数据类型short改long,则输出

结论:当表达式超出了取值范围是,就会丢失数据,这种现象称为数据溢出.所以,在编写程序是要特别注意包含有乘法运算的表达式的值,条件允许是要尽可能使用内存字节多的类型

例题2.4

#include<iostream>
using namespace std;
int main()
{
	int i =6,j,k,stemp;
	j=++i;
	k=i++;
	++i=1;
	cout<<"i="<<i<<endl
		<<"j="<<j<<endl
		<<"k="<<k<<endl;
	return 0;
}


例题2.5

#include<iostream>
using namespace std;
int main()
{
	char ch;
	cout<<"please input a character:";
	cin>>ch;
	ch=ch>='a'&&ch<='z'?ch-'a'+'A':ch;
	cout<<"The result is:"<<ch<<endl;
	return 1;
}


例题2.6

#include<iostream>
using namespace std;
int main()
{
	char ch='c';
	int a,b=13;
	float x,y;
	x=y=2.0;
	a=ch+5;
	x=b/2/x;
	y=b/y/2;
	cout<<"a="<<a<<endl
		<<"x="<<x<<endl
		<<"y="<<y<<endl;
	return 0;
}


 

 

例题2.7

#include<iostream>
using namespace std;
int main()
{
	int ab,ac;
	double b =3.14;
	char c='A';
	ab=int(b);
	ac=int(c);
	cout<<"b="<<b<<endl
		<<"ab="<<ab<<endl
		<<"c="<<c<<endl
		<<"ac="<<ac<<endl;
	return 0;
}


 作业二;计算三角形的周长和面积:

毕竟这是自己编写的第一个程序,所以有什么不足的地方还望见谅,也希望老师能多给点建议,谢谢...

/***功能,计算三角形的周长和面积***/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	double a,b,c,d,e,m,z;       //***d,e,m,z分别表示三角形余弦,正弦,面积和周长

zailaiyici:

	cout<<"请输入三角形的三条边:";
	cin>>a>>b>>c;
    if(a+c>b&&a+b>c&&c+b>a)    //***满足构成三角形的条件
	{
		d=(a*a+b*b-c*c)/(2*a*b);    //***计算三角形的余弦
		e=sqrt(1-d*d);              //***计算三角形的正弦
		z=a+b+c;                    //***计算三角形的周长
		m=0.5*a*b*e;                //***计算三角形的面积
		cout<<"此三角形的周长为:"<<z<<endl
			<<"此三角形的面积为:"<<m<<endl;
		goto zailaiyici;
	}
	else
	{
		cout<<"此三边不能构成三角形:"<<endl;
		goto zailaiyici;
	}
	return 0;
}

作业三,课后习题二合一

 

/***课后习题计算数值***/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int e=1,f=4,g=2;
	float m=10.5, n=4.0, k,j;
	k=(e+f)/g+sqrt((double)n)*1.2/g+m;
	cout<<"第一题答案k="<<k<<endl;

	float x=2.5,y=4.7;
	int a=7;
	j=x+a%3*(int(x+y)%2)/4;
	cout<<"第二题答案j="<<j<<endl;

	return 0;
}


作业四

求方程的解

/***计算一元二次方程的解***/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	double a,b,c,e,x1,x2;       //a,b,c为方程的三个系数.
	cout<<"输入系数a="<<endl;   //依次输入三个系数.
	cin>>a;
	cout<<"输入系数b="<<endl;
	cin>>b;
	cout<<"输入系数C="<<endl;
	cin>>c;
	e=b*b-4*a*c;               //用于确定方程有无根以及求根.
	if (e>=0)                  //求根,当e>0时方程的两个根不同,当e=0时,方程的根x1=x2.
	{
		x1=((-b)+sqrt(double(e)))/(2*a); 
		x2=((-b)-sqrt(double(e)))/(2*a); 
		cout<<"方程的第一个根x1:"<<x1<<endl
			<<"方程的第二个根x2:"<<x2<<endl;
	}
	else                       //当e<0时,方程无根.
	{
		cout<<"方程没有根"<<endl;
	}
	return 0;
}


作业五......

加密作业确实有点难,我看了几次同学的作业还有问了同学,但还是不太明白其中的逻辑,也弄懂应该还需些时日,希望老师原谅,这个作业就以后再补过来吧.

 

错误分析:

1在编写程序的时候,老是习惯在中文状态下就输入标点符号.

2 cout和cin的语句位置对调了,导致输出时不能先输出cout所表示的语句.

3 自己设计程序的时候,不能很好的把握好程序的顺序,走向,以至于程序编好后要继续修改,浪费了一些时间.

4 打字母是粗心大意,总是犯一些小错误.
 

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值