题目1:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include
int main(){
int i,j,k; //设定百、十、个上的数字
int s; //最后得到的三位数
int cnt=0; // 计数器,确定三位数的个数
printf("能够组成的三位数有:\n");
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){
cnt++;
s = i*100+j*10+k;
printf("%d\n",s);
}
}
}
}
printf("三位数的数量为:%d\n",cnt);
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
int main(){
double i;
printf("请输入你的利润:") ;
scanf("%lf",&i); //输入利润 I
double bonus_s;
//定义分段的奖金
double bonus1,bonus2,bonus3,bonus4,bonus5;
//计算出固定的奖金额
bonus1 = 100000 * 0.1; //利润10万~20万
bonus2 = bonus1 + 100000*0.075; //利润20万~40万
bonus3 = bonus2 + 200000*0.05; //利润40万~60万
bonus4 = bonus3 + 200000*0.03; //利润60~100万
bonus5 = bonus4 + 400000*0.015; //利润超过100万
//计算非固定部分
if(i <= 100000){
bonus_s = i * 0.1;
}
else if(i <= 200000){
bonus_s = bonus1 + (i-100000)*0.075;
}
else if(i <= 400000){
bonus_s = bonus2 + (i-200000)*0.05;
}
else if(i <= 600000){
bonus_s = bonus3 + (i-400000)*0.03;
}
else if(i <= 1000000){
bonus_s = bonus4 + (i-600000)*0.015;
}
else {
bonus_s = bonus5 + (i-1000000)*0.01;
}
//输出结果
printf("\n应得奖金: %lf\n",bonus_s);
return 0;
}
题目3:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
/*
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
*/
/* 题目分析: 设该数为 x , 两个平方数分别为 n ,m .
则 x + 100 = n^2; x + 100 + 168 = m^2;
n^2 - m^2 = 168
(n + m)(n - m) = 168;
设 n + m = i; n - m = j;
则有: i * j =168 ,可推出 i 和 j 必有一个是偶数
且: n = (i-j)/2 ; m = (i+j)/2
因为 n 和 m 为整数,所以 i 和 j 均是偶数或均是奇数
可推出 i和 j 都是偶数
显然 ,i > j; j>2
综上 i 和 j 的定义域分别为
1 < i < 168/2 -1
2 < j < i
*/
#include
int main(){
int n, m;
int i, j;
int x ;
printf("这个数可以是:\n");
for(i=1; i < 168/2+1; i++){
if(168 % i == 0){
j = 168 / i;
if ( i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0){
m = (i+j)/2;
n = (i-j)/2;
x = n*n - 100;
printf("%d\t",x);
}
}
}
return 0 ;
}
题目4:
输入某年某月某日,判断这一天是这一年的第几天?
/*输入某年某月某日,判断这一天是这一年的第几天?*/
/* 由于闰年的存在,需判断今年是否是闰年,然后将月份数之前的天数再加上本月的日期即可*/
#include
int main(){
int y,m,d;
printf("请输入年份: 格式参考(2020,2,20)\n");
scanf("%d,%d,%d",&y,&m,&d);
if(m>12||d>31){
printf("输入信息错误,请重新输入");
scanf("%d,%d,%d",&y,&m,&d);
}
//首先判断这一年是否是闰年
/*判断某年是否是闰年。
公历纪年法中,能被4整除的大多是闰年,
但能被100整除而不能被400整除的年份不是闰年,
如1900年是平年,2000年是闰年。*/
int leap_y; //闰年标识符
if(y%4 == 0 && (y%100!=0)||(y%400==0)) {
leap_y = 1;
}
else{
leap_y = 0;
}
/*一月、三月、五月、七月、八月、十月、十二月为31天
二月非闰年为28天,在闰年为29天
四月、六月、九月、十一月为30天*/
//根据月份计算天数
int i;
int sum = 0;
for(i=1; i<=m-1; i++){
switch(i){
case 1: sum = sum+ 31;break;
case 2: sum = sum+ 28; break;
case 3: sum = sum+ 31; break;
case 4: sum = sum+ 30; break;
case 5: sum = sum+ 31; break;
case 6: sum = sum+ 30; break;
case 7: sum = sum+ 31; break;
case 8: sum = sum+ 31; break;
case 9: sum = sum+ 30; break;
case 10: sum = sum+ 31; break;
case 11: sum = sum+ 30; break;
case 12: sum = sum+ 31; break;
}
}
//根据闰年和月份判断是都需要在总天数上加一
if(leap_y == 1 && m >2){
sum = sum + d + 1;
}
else{
sum = sum +d;
}
//输出结果
printf("这是%d年的第%d天\n",y,sum);
return 0;
}
题目5
输入三个整数x,y,z,请把这三个数由小到大输出
/*输入三个整数x,y,z,请把这三个数由小到大输出*/
#include
int main(){
int x,y,z,t;
printf("\n请输入三个数字:\n");
scanf("%d,%d,%d",&x,&y,&z);
int d; //设定中间值,用于交换
if(x>y){
d = y;
y = x;
x = d;
}
// printf("%d,%d,%d",x,y,z);
if(x>z){
//交换x,z 的值
d = z;
z = x;
x = d;
}
if(y>z){
//交换y,z 的值
d = z;
z = y;
y = d;
}
printf("\n三个数由小到大排列:%d,%d,%d",x,y,z);
return 0;
}