C语言课程任务:小小工具箱
注意事项:
函数调用
#include <stdio.h>
void print_star()
{
printf("********************************\n");
printf("* 主菜单 *\n");
printf("* 1.字母数字转换 *\n");
printf("* 2.奖金发放 *\n");
printf("* 3.当年第几天 *\n");
printf("* 4.打印水仙花 *\n");
printf("* 5.查找最大最小数 *\n");
printf("* 6.退出 *\n");
printf("********************************\n");
}
//提示
void print_i()
{
printf("Please input your choice(1-6):");
}
//
//数字转换
void character_num()
{
char c;
c=getchar();
printf("Please input a string:");
while((c=getchar())!='\n')
{
if(c>='A'&&c<='C')
printf("2");
else if(c>='D'&&c<='F')
printf("3");
else if(c>='G'&&c<='I')
printf("4");
else if(c>='J'&&c<='L')
printf("5");
else if(c>='M'&&c<='O')
printf("6");
else if(c>='P'&&c<='S')
printf("7");
else if(c>='T'&&c<='V')
printf("8");
else if(c>='W'&&c<='Z')
printf("9");
else printf("%c",c);
}
printf("\n");
}
//
//奖金发放
void salary_income ()
{
int a,b;
printf("Plesae input the profit:");
scanf("%d",&a);
if (a<=100000)
b=10000;
else if(a<=200000&&a>100000)
b=10000+(a-100000)*0.075;
else if(a<=400000&&a>2000000)
b=10000+(200000-100000)*0.075+(a-200000)*0.05;
else if(a<=600000&&a>400000)
b=10000+(200000-100000)*0.075+(400000-200000)*0.05+(a-400000)*0.03;
else if(a<=1000000&&a>600000)
b=10000+(200000-100000)*0.075+(400000-200000)*0.05+(600000-400000)*0.03+(a-600000)*0.015;
else if(a>100)
b=10000+(200000-100000)*0.075+(400000-200000)*0.05+(600000-400000)*0.03+(1000000-600000)*0.015+(a-1000000)*0.01;
printf("bonus=%d\n",b);
}
//
//当年第几天
void year_day()
{
int a,b,c,i=0,j,flag,k;
printf("Please input year,month,day :");
scanf("%d,%d,%d",&a,&b,&c);
if(a%400==0)
flag=1;
else
if(a%4==0&&a%100!=0)
flag=1;
else
flag=0;
/*用 flag 判断是否是闰年*/
k=b-1;
if (flag==1)//是闰年
{
switch(k)
{
case 12:i=i+31;;
case 11:i=i+30;;
case 10:i=i+31;;
case 9:i=i+30;;
case 8:i=i+31;;
case 7:i=i+31;;
case 6:i=i+30;;
case 5:i=i+31;;
case 4:i=i+30;;
case 3:i=i+31;;
case 2:i=i+29;;
case 1:i=i+31;break;
}
}
else if (flag==0)//不是闰年
{
switch(k)
{
case 12:i=i+31;;
case 11:i=i+30;;
case 10:i=i+31;;
case 9:i=i+30;;
case 8:i=i+31;;
case 7:i=i+31;;
case 6:i=i+30;;
case 5:i=i+31;;
case 4:i=i+30;;
case 3:i=i+31;;
case 2:i=i+28;;
case 1:i=i+31;break;
}
}
j=c+i; //j为天数
printf("%d\n",j);
}
//
//水仙花数
void water_flower_num()
{
int i,n,a,b,c;
printf("Please input n:");
scanf("%d",&n);
for(i=100;i<=n;i++)
{
a=i/100; b=(i/10)%10; c=i%10;
if(i==(a*a*a+b*b*b+c*c*c))
printf("%d\n",i);
}
}
//
//查找最大数最小数
void swap(int*a,int*b) //调用swap函数来实现指针的调用
{
int temp=*a;
*a = *b;
*b = temp;
}
void find()
{
int n,i,j;
int a[100];
printf("Please input n :");
scanf("%d",&n);
printf("Please input data :");
for (i=0;i<n;i++)
scanf("%d",&a[i]);
for (i=0;i<n-1;i++)
for (j=0;j<n-1-i;i++)
if (a[j]<a[i])
{
swap(&a[j],&a[i]); //指针
}
printf("Max number is %d\n",a[0]);
printf("Max number is %d\n",a[n-1]);
}
//
int main()
{
int a,x,t=1;
//函数的调用
print_star();
//printf("%d",a);
while (t!=0) //实现循环调用
{
print_i();
scanf("%d",&a);
switch(a)
{
case 1:character_num();break;
case 2:salary_income();break;
case 3:year_day();break;
case 4:water_flower_num();break;
case 5:find();break;
case 6:t = 0;break;
}
}
return 0;
}
运行结果: