小编提示:
下面的程序代码用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++的一个自洽子集,也具有强大的功能,同样值得学习。
如果你想获取更多行业内的第一手新鲜资料,请关注我
领取专属 10元无门槛券
私享最新 技术干货