t1:
t2;/*比较t1、t2,较小者即为4个数中的最小数*/
printf("Theminimumnumberis:
%d\n",min);
}
4.6输入三个整数,分别放入x,y,z中,要求程序把数据重新按从小到大的顺序放入x,y,z中,然后输出x,y,z中的值。
程序代码如下:
#include
voidmain()
{
intx,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;}/*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("smalltobig:
%d%d%d\n",x,y,z);
}
4.7输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字。
程序代码一:
#include
voidmain()
{
inti,a,b,c,d;
printf("\nPleaseinputanumber(0-9999):
");
scanf("%ld",&i);
if(i<0||i>9999)
printf("Errorinput.");
else
{
if(i<=9)n=1;/*求i的位数*/
elseif(i<=99)n=2;
elseif(i<=999)n=3;
elsen=4;
printf("Thereare%ddigits.\n",n);
a=i%10;/*求i的个位数*/
b=i/10%10;/*求i的十位数*/
c=i/100%10;/*求i的百位数*/
d=i/1000%10;/*求i的千位数*/
printf("Reversedigit:
");
switch(n)
{case1:
printf("%d\n",a);break;
case2:
printf("%d,%d\n",a,b);break;
case3:
printf("%d,%d,%d\n",a,b,c);break;
case4:
printf("%d,%d,%d,%d\n",a,b,c,d);
}
}
}
程序代码二:
#include
voidmain()
{
inti,a,b,c,d;
printf("\nPleaseinputanumber(0-9999):
");
scanf("%d",&i);
a=i%10;/*求i的个位数*/
b=i/10%10;/*求i的十位数*/
c=i/100%10;/*求i的百位数*/
d=i/1000%10;/*求i的千位数*/
if(d!
=0)/*千位数非0时*/
{printf("Thereare4digits.\n");/*4位数*/
printf("Reversedigit:
%d,%d,%d,%d\n",a,b,c,d);
}
elseif(c!
=0)/*千位数为0但百位数非0时*/
{printf("Thereare3digits.\n");/*3位数*/
printf("Reversedigit:
%d,%d,%d\n",a,b,c);
}
elseif(b!
=0)/*千、百位数为0但十位数非0时*/
{printf("Thereare2digits.\n");/*2位数*/
printf("Reversedigit:
%d,%d\n",a,b);
}
else/*千、百、十位数为0时*/
{printf("Thereare1digits.\n");/*1位数*/
printf("Reversedigit:
%d\n",a);
}
}
4.8输入一个年份和一个月份,输出该年的这个月有多少天。
用switch语句编程。
程序代码如下:
#include
voidmain()
{
unsignedy,m,d;
printf("\nInputyear-month:
");
scanf("%u-%u",&y,&m);
switch(m)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
d=31;break;
case2:
/*2月份要考虑是否闰年*/
d=(y%4==0&&y%100!
=0||y%400==0)?
29:
28;break;
case4:
case6:
case9:
case11:
d=30;break;
}
printf("Thereare%udaysthismonth.\n",d);
}
4.9编制程序,计算某个学生奖学金的等级,以三门课程成绩为评奖依据。
奖学金评奖标准如下:
符合下列条件之一者获一等奖:
(1)平均分大于95分者;
(2)有两门成绩是100分,且第三门课程成绩不低于80分者。
符合下列条件之一者获二等奖:
(1)平均分大于90分者;
(2)有一门成绩是100分,且其他课程成绩不低于75分者。
符合下列条件者获三等奖:
各门功课成绩不低于70分。
符合条件者就高不就低,只能获得高的那一项奖学金。
要求显示获奖的等级。
程序代码如下:
#include
voidmain()
{
ints1,s2,s3;floataver;
printf("\nInputthreescores:
");
scanf("%d,%d,%d",&s1,&s2,&s3);
aver=(s1+s2+s3)/3.0;
if(aver>95||s1==100&&s2==100&s3>=80||s1==100&&s3==100&s2>=80
||s2==100&&s3==100&s1>=80)
printf("Grade:
1\n");
elseif(aver>90||s1==100&&s2>=75&s3>=75||s2==100&&s1>=75&s3>=75
||s3==100&&s1>=75&s2>=75)
printf("Grade:
2\n");
elseif(s1>=70&&s2>=70&s3>=70)
printf("Grade:
3\n");
}
4.10输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。
C>40时,打印“Hot”
3020100C≤0时,打印“Freezing”
程序代码如下:
#include
voidmain()
{
floatf,c;
printf("Inputthefahrenheittemperature:
");
scanf("%f",&f);
c=5.0/9.0*(f-32);/*将华氏温度转换成摄氏温度*/
if(c>40)
printf("Hot\n");
elseif(c>30)
printf("Warm\n");
elseif(c>20)
printf("RoomTemperature\n");
elseif(c>10)
printf("Cool\n");
elseif(c>0)
printf("Cold\n");
else
printf("Freezing\n");
}
4.11某商场开展购物打折活动,若购物款x在下述范围内,所付款y按对应折扣支付:
y=
x(x<1000)
0.9x(1000≤x<2000)
0.8x(2000≤x<3000)
0.7x(x≥3000)
从键盘输入购物款x,求实际所付款y。
程序代码一:
#include
voidmain()
{
floatx,y;
printf("Inputx:
");
scanf("%f",&x);
if(x<0)
printf("Inputerror.\n");
else
{
if(x<1000)
y=x;
elseif(x<2000)
y=0.9*x;
elseif(x<3000)
y=0.8*x;
else
y=0.7*x;
printf("x=%.2f,y=%.2f\n",x,y);
}
}
程序代码二:
#include
voidmain()
{
floatx,y;intc;
printf("Inputx:
");
scanf("%f",&x);
if(x<0)
printf("Inputerror.\n");
else
{
c=x/1000;
switch(c)
{
case0:
y=x;break;
case1:
y=0.9*x;break;
case2:
y=0.8*x;break;
default:
y=0.7*x;
}
printf("x=%.2f,y=%.2f\n",x,y);
}
}
4.12企业发放的奖金根据利润提成。
利润低于或等于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%提成,从键盘输入当月利润,求应发放奖金总数。
程序代码一:
#include
voidmain()
{
floatx,y;
printf("\nInputtheprofitx=");
scanf("%f",&x);
if(x<=0)
printf("Noprize.\n");
else
{
if(x<=10e4)
y=x*0.1;
elseif(x<=20e4)
y=10e4*0.1+(x-10e4)*0.075;
elseif(x<=40e4)
y=10e4*0.1+10e4*0.075+(x-20e4)*0.05;
elseif(x<=60e4)
y=10e4*0.1+10e4*0.075+20e4*0.05+(x-40e4)*0.03;
elseif(x<=100e4)
y=10e4*0.1+10e4*0.075+20e4*0.05+20e4*0.03+(x-60e4)*0.015;
else
y=10e4*0.1+10e4*0.075+20e4*0.05+20e4*0.03+40e4*0.015+(x-100e4)0.01;
printf("Totalprizey=%.2f\n",y);
}
}
程序代码二:
#include
voidmain()
{
floatx,y;
printf("\nInputtheprofitx=");
scanf("%f",&x);
if(x<=0)
printf("Noprize.\n");
else
{
y10=10e4*0.1;/*利润为10万的奖金*/
y20=y10+10e4*0.075;/*利润为20万的奖金*/
y40=y20+20e4*0.05;/*利润为40万的奖金*/
y60=y40+20e4*0.03;/*利润为60万的奖金*/
y100=y60+40e4*0.015/*利润为100万的奖金*/
if(x<=10e4)y=x*0.1;
elseif(x<=20e4)y=y10+(x-10e4)*0.075;
elseif(x<=40e4)y=y20+(x-20e4)*0.05;
elseif(x<=60e4)y=y40+(x-40e4)*0.03;
elseif(x<=100e4)y=y60+(x-60e4)*0.015;
elsey=y100+(x-100e4)0.01;
printf("Totalprizey=%.2f\n",y);
}
}
4.13输入一个用24小时制表示的时间(h:
m),把它转换为用12小时制表示的时间并输出。
如:
输入9:
05,输出9:
05AM;输入12:
10,输出12:
10PM;输入14:
30,输出2:
30PM。
程序代码如下:
#include
voidmain()
{
inth,m;
printf("24hourtime:
");
scanf("%d:
%d",&h,&m);
if(h>=24||m>=60)
printf("Inputerror.\n");
elseif(h<12)
printf("12hourtime:
%d:
%02dAM\n",h,m);
elseif(h<13)
printf("12hourtime:
%d:
%02dPM\n",h,m);
else
printf("12hourtime:
%d:
%02dPM\n",h-12,m);
}
4.14输入一个学生的生日(年y1、月m1、日d1),再输入当前日期(年y2、月m2、日d2),求该生的实足年龄。
程序代码一:
#include
voidmain()
{
inty1,m1,d1,y2,m2,d2,age;
printf("Enterthebirthday(yyyy-mm-dd):
");
scanf("%d-%d-%d",&y1,&m1,&d1);
printf("Enterthecurrentdate(yyyy-mm-dd):
");
scanf("%d-%d-%d",&y2,&m2,&d2);
if(m1>m2)
age=y2-y1-1;
elseif(m1age=y2-y1;
else/*m1==m2的情形*/
if(d1>d2)
age=y2-y