//题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> void main(){
//三位数,有个,十,百,三位,可以通过循环来解决,百位上循环1次,十位上循环4次,个位上循环4*4=16次
FILE *pf;
pf = fopen("E:\\h1.txt", "w");
//定义缓冲区
//字符串数组必须赋初始值
char buff[] = { };
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
for (int k = ; k < ; k++)
{
if (i!=j&&i!=k&&j!=k)
{
//拼接字符串
sprintf(buff, "%d%d%d\r\n", i, j, k);
printf("%s", buff);
//写入1.TXT
fputs(buff, pf);
} }
}
}
printf("执行成功!\n");
//关闭文件指针
fclose(pf);
system("pause");
}
//题目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,求应发放奖金总数? #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> //分析:应发放奖金总数=10*10%+10*7.5%(利润高于10万元,低于20万元时)+20*5%....
//首先确定奖金处于哪一级别
//可以使用多函数实现 //低于10万元
double low10(int num){
return num*0.1;
} //利润高于10万元,低于20万元时
double low20(int num){
return num*0.075;
} //利润高于20万元,低于40万元时
double low40(int num){
return num*0.05;
} //利润高于40万元,低于60万元时
double low60(int num){
return num*0.03;
} //利润高于60万元,低于100万元时
double low100(int num){
return num*0.015;
} //利润高于60万元,低于100万元时
double lowm(int num){
return num*0.01;
} void main(){
int num = ;
scanf("%d", &num);
printf("\n当月利润是%d\n",num);
double resnum = 0.0;
switch ((num-)/)
{
case :
resnum=low10(num);
break;
case :
resnum = low10() + low20(num-);
break;
case :
case :
resnum = low10() + low20() + low40(num - );
break;
case :
case :
resnum = low10() + low20() + low40()+low60(num-);
break;
case :
case :
case :
case :
resnum = low10() + low20() + low40() + low60() + low100(num-);
break;
default:
resnum = low10() + low20() + low40() + low60() + low100()+lowm(num-);
break;
}
printf("应发放奖金总数%lf", resnum); system("pause");
}
//题目3:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h> //分析:枚举法,用while循环 找到为止
void main(){
int x, y,i=;
while (){
//sqrt在头文件mat.h中,函数原型为double sqrt(double);功能是求一个非负实数的平方根
//这里存在强转,所以sqrt((double)(i + 100))求的值不一定是整数
x =(int)sqrt((double)(i + ));
y =(int)sqrt((double)(i + ));
//x*x == (i + 100)用来判断上面sqrt((double)(i + 100))求的值是不是一个整数,如果不是整数就不会相等
if (x*x == (i + ) && y*y == (i + ))
{
printf("该数i是%d,x的值是%d,y的值是%d\n",i,x,y);
break;
}
i++;
if (i>)
{
break;
}
}
system("pause");
}