C++程序设计经典300例1of3文档格式.docx
- 文档编号:22432330
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:107
- 大小:38.88KB
C++程序设计经典300例1of3文档格式.docx
《C++程序设计经典300例1of3文档格式.docx》由会员分享,可在线阅读,更多相关《C++程序设计经典300例1of3文档格式.docx(107页珍藏版)》请在冰豆网上搜索。
SHRT_MIN<
SHRT_MAX<
k:
LONG_MIN<
LONG_MAX<
ii:
FLT_MIN<
FLT_MAX<
jj:
DBL_MIN<
DBL_MAX<
kk:
LDBL_MIN<
LDBL_MAX<
3******************************************************
shortj=2;
longk=3;
floatii=1.1;
doublejj=1.234;
longdoublekk=1.2342546;
j="
j<
k="
k<
ii="
ii<
jj="
jj<
kk="
kk<
4*********************************************
//整型变量i
intj;
//整型变量j
inttemp;
//临时变量
i=5;
j=10;
endl<
//交换前
//交换
temp=i;
i=j;
j=temp;
//交换后
5*********************************************************
floati;
//浮点型数值-重量1
//整型数值-重量2
intsum;
//总重量
i=0.002;
j=2;
sum=i+j;
//计算总重量
sum="
sum<
//输出
6****************************************************
intPool_volume;
//游泳池容量
intcount=10;
//循环次数
while(count!
=0)
{
cin>
>
Pool_volume;
//输入数据
if(Pool_volume<
100)//如果小于100升,池中水没溢出
cout<
游泳池中水没溢出,可以继续加水"
else
游泳池中水已满,必须停止加水或者加入另一个游泳池"
count--;
}
7**************************************************************
//整型
floatj=2.234;
//浮点型
i=(int)j;
//显式类型转换
赋值后的i值:
8***********************************************************
inta=10;
intb=2;
intc;
c=a&
b;
//按位与
对a和b进行按位与后的结果为:
c<
c=a|b;
//按位或
对a和b进行按位或后的结果为:
c=a^b;
//按位异或
对a和b进行按位异或后的结果为:
c=~a;
//按位求反
对a进行按位求反后的结果为:
c=a<
1;
//左移1位
对a向左移动1位后的结果为:
c=a>
//右移1位
对a向右移动1位后的结果为:
9*******************************************************
floatwidth;
//房间宽度
floatlength;
//房间长度
floatarea;
//房间面积
cin>
width>
length;
//依次输入宽度和长度
area=width*length;
//计算面积
房间面积为:
area<
10**********************************************************
intapple_number=60;
//60个苹果
intpeople=12;
//12个人
intapple_per_people;
//每个人分多少个苹果
if(people!
=0)//判断除数是否为0
apple_per_people=apple_number/people;
cout<
平均分配,每个人得"
apple_per_people<
个苹果"
else
除数为0,出现异常"
11**********************************************************************
intyear;
//年份
year;
//输入年份
if(year%400==0)//如果能被400整除,则为闰年
year<
年是闰年"
else//不能被400整除
if((year%4==0)&
&
(year%100!
=0))//判断闰年的另一个条件
年不是闰年"
12********************************************
inti=0;
for(introws=0;
rows<
16;
rows++)
i=rows;
while(i<
=127)
switch(i)
{
case7:
//震铃
cout<
="
\\a"
|"
break;
case8:
//退格
\\b"
case9:
//水平制表符
\\t"
case10:
//换行
\\n"
case11:
//竖直制表符
\\v"
case12:
//换页
\\f"
case13:
//回车
\\r"
default:
char(i)<
}
i+=16;
//每隔16个另起一列
13**************************************************************
#include<
string>
structhuffTree
intparent;
//父亲
intlchild;
//左孩子
intrchild;
//右孩子
intweight;
//权重
stringflag;
//标志
};
structLowest_Node//第0级节点的字符与频度
charch;
intch_num;
//确定每个字符的huffman编码,输出参数为a、b
voidcoding(intlength,huffTreetree[],intn,int&
a,int&
b)
intr,s;
r=s=length;
//节点个数最大不会超过字符串的长度
for(i=0;
n;
i++)
if((tree[i].weight<
r)&
(tree[i].parent==-1))
{
r=tree[i].weight;
a=i;
}
s)&
(i!
=a)&
s=tree[i].weight;
b=i;
//计算每个字符出现的频度并排序
voidfrequency(stringstr)
intlength=str.length();
//长度
Lowest_Node*node=newLowest_Node[length];
//声明最0级节点
inti,j;
//循环因子
node[i].ch_num=0;
//初始化频度
intchar_type_num=0;
//初始为0种字符
i++)//循环整个字符串
{
for(j=0;
char_type_num;
j++)
if(str[i]==node[j].ch||(node[j].ch>
='
node[j].ch<
z'
str[i]+32==node[j].ch))
//该字符没有出现过,跳出循环
if(j<
char_type_num)//该字符重复出现,对应的记数器加1
node[j].ch_num++;
else//新出现的字符,记录到ch[j]中,对应计数器加1
{
if(str[i]>
A'
str[i]<
Z'
)
node[j].ch=str[i]+32;
else
node[j].ch=str[i];
char_type_num++;
//字符的种类数加1
}
}
//按频度从大到小排序
for(j=i;
j++)
if(node[j].ch_num<
node[j+1].ch_num)//如果前一个小于后一个,交换
inttemp;
//临时频度
charch_temp;
//临时字符
temp=node[j].ch_num;
ch_temp=node[j].ch;
node[j].ch_num=node[j+1].ch_num;
node[j].ch=node[j+1].ch;
node[j+1].ch_num=temp;
node[j+1].ch=ch_temp;
i++)//打印字符频度
字符"
node[i].ch<
出现了"
node[i].ch_num<
次"
huffTree*huff=newhuffTree[2*char_type_num-1];
//此变量的声明需位于确定char_type_num值后
huffTreetemp;
string*code=newstring[2*char_type_num-1];
//存放各个字符的编码
2*char_type_num-1;
i++)//节点初始化
huff[i].lchild=-1;
huff[i].parent=-1;
huff[i].rchild=-1;
huff[i].flag=-1;
for(j=0;
j++)//将排序后的第0级节点权重赋给树节点
huff[j].weight=node[j].ch_num;
intmin1,min2;
for(intk=char_type_num;
k++)//赋值0级之上的节点
coding(length,huff,k,min1,min2);
huff[min1].parent=k;
huff[min2].parent=k;
huff[min1].flag="
0"
huff[min2].flag="
1"
huff[k].lchild=min1;
huff[k].rchild=min2;
huff[k].weight=huff[min1].weight+huff[min2].weight;
temp=huff[i];
while
(1)
code[i]=temp.flag+code[i];
temp=huff[temp.parent];
if(temp.parent==-1)
字符串的每个字符huffman编码为:
"
code[i]<
整个字符串的huffman编码为:
if(str[i]==node[j].ch)
code[j];
//释放内存
delete[]node;
node=NULL;
delete[]huff;
huff=NULL;
delete[]code;
code=NULL;
}
intlength=0;
//字符串长度
stringstr;
//目标字符串
请输入一个字符串:
str;
frequency(str);
//求各个元素的频度
14*********************************************************************
intlevel(charch)
switch(ch)
case'
!
:
return2;
break;
*'
return3;
/'
%'
+'
return4;
-'
return5;
default:
return-1;
charsymbol[3];
intvalue[3];
从!
、*、/、%、+、-、=运算符中选择3个参与算术运算"
symbol[0]>
symbol[1]>
symbol[2];
value[0]=level(symbol[0]);
value[1]=level(symbol[1]);
value[2]=level(symbol[2]);
if((value[0]==-1)||(value[1]==-1)||(value[2]==-1))//只要有一个返回负数
库中没有输入的运算符"
//从大到小排序
for(inti=0;
i<
3;
i++)
for(intj=i;
j<
3;
if(value[i]>
value[j])//如果前一个大于后一个,开始交换
{
//交换
chartemp;
temp=symbol[i];
symbol[i]=symbol[j];
symbol[j]=temp;
}
依次进入运算的顺序为:
for(intk=0;
k++)
symbol[k]<
15****************************************************************
//称水果,四舍五入
floatfruit_weight;
//水果的重量
intfruit_weight_cal;
//被计算的水果重量
输入所称水果的重量:
fruit_weight;
if((fruit_weight-(int)fruit_weight)<
0.5)//舍去
fruit_weight_cal=(int)fruit_weight;
else//五入
fruit_weight_cal=(int)fruit_weight+1;
一共有"
fruit_weight_cal<
斤水果需要被付钱"
16***********************************************************
floatsum=1000.0;
//总额为1000元
intmale=4;
//4名男性员工
intfemale=4;
//4名女性员工
floatticket_value_male=35.0;
floatticket_value_female;
ticket_value_female=ticket_value_male/2;
floatremain;
//剩余多少钱
intmale_remain;
remain=sum-(male*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 经典 300 of3