C++程序Word格式文档下载.docx
- 文档编号:22208181
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:30
- 大小:50.79KB
C++程序Word格式文档下载.docx
《C++程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++程序Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
a.fun();
return0;
}
【程序10】
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,
求它在第10次落地时,共经过多少米?
第10次反弹多高?
classBallFall{
BallFall(){height=100;
distance=100;
private:
doubleheight;
doubledistance;
voidBallFall:
for(inti=1;
10;
distance=distance+height;
height/=2;
cout<
路程是:
distance<
endl;
高度是:
height/2<
BallFalla;
【程序11】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
classNum{
voidNum:
intcount=0;
for(intx=1;
x<
5;
x++){
for(inty=1;
y<
y++){
for(intz=1;
z<
z++){
if(x!
=y&
&
y!
=z&
x!
=z){
count++;
x*100+y*10+z<
if(count%4==0){
\n"
共有"
<
count<
个三位数"
Numa;
【程序12】
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%,
高于100万元时,超过100万元的部分按1%提成,
从键盘输入当月利润I,求应发放奖金总数?
请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
classAward{
Award(){i=0;
s=0;
voidset_pro();
inti;
doubles;
voidAward:
set_pro(){
cin>
>
i;
if(i<
=10){
s=i*0.1;
elseif(i>
10&
=20){
s=10*0.1+(i-10)*0.075;
20&
=40){
s=10*0.1+10*0.075+(i-20)*0.05;
40&
=60){
s=10*0.1+10*0.075+20*0.05+(i-40)*0.03;
60&
=100){
s=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;
else{
s=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;
本月应发放奖金"
s<
万元"
Awarda;
a.set_pro();
【程序13】
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,
如果开方后的结果满足如下条件,即是结果。
math.h>
classShu{
voidShu:
for(inti=-100;
=100000;
if(sqrt(i+100)/1==int(sqrt(i+100))){
if(sqrt(i+268)/1==int(sqrt(i+268))){
cout<
Shua;
【程序14】
输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,
特殊情况,闰年且输入月份大于3时需考虑多加一天。
classDay{
Day(){year=0;
month=0;
day=0;
voidset_day();
intyear,month,day;
voidDay:
set_day(){
year;
month;
day;
intdays=0,d=0;
switch(i){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case4:
case6:
case9:
case11:
days=30;
case2:
{if(year%400==0||(year%4==0&
year%100!
=0))
days=29;
elsedays=28;
break;
d+=days;
cout<
d+day<
天"
;
Daya;
a.set_day();
【程序15】
输入三个整数x,y,z,请把这三个数由小到大输出。
我们想办法把最大数为x,最小数为z
classSort{
voidset_num();
intx,y,z;
voidSort:
set_num(){
x;
y;
z;
voidswap(int*a,int*b){intt=*a;
*a=*b;
*b=t;
if(x>
y)swap(x,y);
z)swap(x,z);
if(y>
z)swap(y,z);
x<
y<
z<
Sorta;
a.set_num();
【程序16】
输出9*9口诀。
分行与列考虑,共9行9列,i控制行,j控制列。
classKou{
voidKou:
i<
i++){
for(intj=1;
j<
=i;
j++){
*"
="
i*j<
Koua;
【程序17】
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
采取逆向思维的方法,从后往前推断。
classMon{
Mon(){lastnumber=1;
intlastnumber;
voidMon:
for(inti=2;
=10;
lastnumber=(lastnumber+1)*2;
lastnumber<
intmain(){
Mona;
【程序20】
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
请抓住分子与分母的变化规律。
classSum{
Sum(){sum=0;
doublesum;
voidSum:
intx=2,y=1,t;
for(inti=0;
20;
sum+=(double)x/y;
t=y;
y=x;
x=y+t;
前20项之和是:
sum<
Suma;
【程序21】
求1+2!
+3!
+...+20!
的和
此程序只是把累加变成了累乘。
fun(){
floatsum=0;
floatfac=1;
=20;
fac=fac*i;
sum+=fac;
sum<
【程序22】
利用递归方法求5!
递归公式:
fn=fn_1*4!
classWu{
longfun(intn);
longWu:
fun(intn){
if(n==1)return1;
elsereturnn*fun(n-1);
Wua;
a.fun(5)<
【程序25】
一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
classHui{
voidset_n();
longn;
voidHui:
set_n(){
n;
if(n/10000==n%10&
n/10%10==n/10/10/10%10)
是回文数"
elsecout<
不是回文数"
Huia;
a.set_n();
【程序27】
求100之内的素数
classSu{
voidSu:
intj;
=100;
for(j=2;
=sqrt(i);
j++)
if(i%j==0)break;
if(j>
sqrt(i))cout<
Sua;
【程序28】
对10个数进行排序
可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
下次类推,即用第二个元素与后8个进行比较,并进行交换。
inta[10];
for(i=0;
i++){cin>
a[i];
for(i=0;
i++){
for(intj=i+1;
if(a[i]>
a[j]){
intt=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;
i++)cout<
a[i]<
【程序29】
求一个3*3矩阵对角线元素之和
利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
classCross{
Cross(){sum=0;
intsum;
inta[3][3];
voidCross:
set_num(){
for(inti=0;
3;
for(intj=0;
j++){cin>
a[i][j];
for(intj=0;
if(i==j)sum+=a[i][j];
对角线元素之和是"
Crossa;
【程序31】
将一个数组逆序输出。
用第一个与最后一个交换。
classInverse{
voidset_array();
voidInverse:
set_array(){
i++)cin>
for(inti=9;
i>
=0;
i--){
cout<
Inversea;
a.set_array();
【程序33】
打印出杨辉三角形(要求打印出10行如下图)
classYang{
voidYang:
inta[10][10];
a[i][0]=1;
a[i][i]=1;
for(i=2;
for(intj=1;
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][j]<
Yanga;
【程序34】
输入3个数a,b,c,按大小顺序输出。
利用指针方法。
inta,b,c;
a;
b;
c;
voidswap(int*x,int*y){intt=*x;
*x=*y;
*y=t;
if(a>
b)swap(a,b);
c)swap(a,c);
if(b>
c)swap(b,c);
a<
b<
c<
【程序38】
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
classLen{
intfun(char*s);
intLen:
fun(char*s){
inti=0;
while(*s){i++;
s++;
returni;
chara[80];
gets(a);
Lenb;
b.fun(a)<
【程序39】
编写一个函数,
输入n为偶数时,调用函数求1/2+1/4+...+1/n,
当输入n为奇数时,调用函数1/1+1/3+...+1/n
(利用指针函数)
voidfun(intn);
voidf(intn);
fun(intn){
for(inti=2;
=n;
i=i+2)
sum+=(double)1/i;
f(intn){
intn;
if(n%2==0)a.fun(n);
elsea.f(n);
【程序41】
海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
booltake(intsum){
for(intn=1;
n<
=5;
n++){
if(sum%5==1){
sum=sum-1;
sum=sum-sum/5;
else
returnfa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序