首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

其实编程没有这么难,只是你太想速成C加加初学者练习题

小编提示:

下面的程序代码用C++程序实现,适合初学者参考学习。同样的,我在写程序的过程中,会注释一些个人感觉值得注意的地方的一些见解。相互指正。

【程序1】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include

using namespace std;

/*

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

掉不满足条件的排列。

*/

void combine(){

int count = 0;

for(int i=1;i

for(int j=1;j

for(int k=1;k

if(i!=k && j!=i && k!=j){

count++;

cout

if(count%10==0)

cout

}

}

}

}

cout

cout

}

int main(){

combine();

return 0;

}

【程序2】

题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

#include

using namespace std;

/*

分析:

设利润是x 奖金y

x

10>x>=20(万元) y=0.1*10+(x-10)*0.075

20>x>=40(万元) y=0.1*10+10*0.075+(x-20)*0.05

40>x>=60(万元) y=0.1*10+10*0.075+20*0.05+(x-40)*0.03

60>x>=100(万元) y=0.1*10+10*0.075+20*0.05+20*0.03+(x-60)*0.015

x>100(万元) y=0.1*10+10*0.075+10*0.05+20*0.03+40*0.015+(x-100)*0.01

*/

float calculate(int x){

if(x

return 0.1*x;

}else if(x>10 && x

return 0.1*10+(x-10)*0.075;

}else if(x>20 && x

return 0.1*10+10*0.075+(x-20)*0.05;

}else if(x>40 && x

return 0.1*10+10*0.075+20*0.05+(x-40)*0.03;

}else if(x>60 && x

return 0.1*10+10*0.075+20*0.05+20*0.03+(x-60)*0.015;

}else if(x>100){

return 0.1*10+10*0.075+10*0.05+20*0.03+40*0.015+(x-100)*0.01 ;

}

}

/*

这里问题值得注意的一点就是关于返回值用什么类型:我们不妨复习一下C++中所具有的数据类型:

布尔型 bool

字符型 char

整型 int

浮点型 float 4 个字节+/- 3.4e +/- 38 (~7 个数字)

双浮点型double 8 个字节+/- 1.7e +/- 308 (~15 个数字)

无类型 void

宽字符型wchar_t

一些基本类型可以使用一个或多个类型修饰符进行修饰:

signed

unsigned

short

long

如:long int long double等

由于这里没有涉及比较精密的计算,还在我们可以常规能接收的范围,所以用float

*/

int main(){

float a = calculate(55);

cout

return 0;

}

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include

#include

using namespace std;

/*

提示:By:weizu_cool

不妨采用break跳出循环控制,找到后输出;或者直接输出,再break;

我们需要使用sqrt函数,导入

double sqrt(double); 该函数返回参数的平方根。

*/

int find(n){

int count=0;

long num =0, x = 0, y = 0;

while(1){

num++;

x = sqrt(num+100);

y = sqrt(num+268); //注意:这里不要想当然的定义x,y为double来存储,因为我们后面的if条件判断就是基于整型变量的

//截取整数部分来进行,从而得出的判断。double的话,每次都相等了,判断就失去了意义。

if(x*x==num+100 && y*y==num+268){

cout

count++;

if(count==n)

break;

}

}

return 0;

}

int main(void){

int n = 3;//这里n是希望找到的满足条件的数的个数 ,实际上经过测试好像也只有三个

find();

return 0;

}

1、C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

2、C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

它们用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180922A1206C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券