这篇资源主要包含了两个C语言的经典编程例题,适合计算机二级考试(国二)的初学者进行上机练习。第一个问题是关于计算没有重复数字的三位数的数量,通过三重循环实现所有可能的组合并排除重复。第二个问题则是根据利润计算不同层次的奖金提成,需要用到条件判断和数轴分界来确定不同利润区间的提成比例。
**程序1详解:**
此程序的目标是找出由数字1、2、3、4可以组成的不重复的三位数。通过三层嵌套循环,遍历所有可能的数字组合,并通过条件判断`if(i!=k&&i!=j&&j!=k)`确保每个数字只出现一次。最后,使用`printf`打印出符合条件的三位数。
```c
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=k&&i!=j&&j!=k)
printf("%d,%d,%d\n",i,j,k);
}
```
在这个循环结构中,`i`、`j`、`k`分别代表百位、十位和个位的数字。由于循环从1到4,所以每层循环会有4次迭代,总共可以形成4 * 4 * 4 = 64个不同的三位数,其中符合要求的组合共4 * 3 * 2 = 24种,因为每层循环的起始数字不能与后续数字相同。
**程序2详解:**
这个程序的目的是根据利润计算奖金。利润分成多个区间,每个区间有不同的提成比例。程序首先读取利润值`i`,然后根据利润大小计算对应区间的奖金。
```c
if(i<=100000)
bonus=i*0.1;
elseif(i<=200000)
bonus=bonus1+(i-100000)*0.075;
elseif(i<=400000)
bonus=bonus2+(i-200000)*0.05;
elseif(i<=600000)
bonus=bonus4+(i-400000)*0.03;
elseif(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
```
这里,`bonus`变量存储了最终的奖金总额。通过一系列的`if-elseif`语句,根据输入的利润`i`所在的区间计算奖金。例如,如果利润在10万到20万之间,那么前10万按照10%提成,剩下的部分按照7.5%提成。每个区间定义了一个基准奖金`bonusX`,便于计算超出部分的提成。
这两个例题覆盖了C语言的基础知识,包括循环结构、条件判断、输入输出以及简单的数学逻辑,对初学者来说是很好的实践练习。