4.4 有三个整数a,b,c,由键盘输入,输出其中最大的数.
main()
{
int
a,b,c;
printf("请输入三个数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(b
printf("max=%d\n",c);
else
printf("max=%d\n",b);
else
if(a
printf("max=%d\n",c);
else
printf("max-%d\n",a);
}
方法2:使用条件表达式.
main()
{
int
a,b,c,termp,max;
printf("请输入A,B,C:");
scanf("%d,%d,%d",&a,&b,&c);
printf("A=%d,B=%d,C=%d\n",a,b,c);
temp=(a>b)
? a:b;
max=(temp>c) ? temp:c;
printf("A,B,C中最大数是%d,",max);
}
4.5
main()
{
int
x,y;
printf("输入x:");
scanf("%d",&x);
if(x<1)
{y=x;
printf("X-%d,Y=X=%d\n",x,y);
}
else
if(x<10)
{y=2*x-1;
printf("X=%d,Y=2*X-1=%d\n",x,y);
}
else
{y=3*x-11;
printf("X=5d,
Y=3*x-11=%d\n",x,y);
}
}
4.6( 只是参考答案。不同的人有不同的算法,这些答案仅供参考!)
void main()
{
float
s,i;
char
a;
scanf("%f",&s);
while(s>100||s<0)
{
printf("输入错误!error!");
scanf("%f",&s);
}
i=s/10;
switch((int)i)
{
case 10:
case
9: a='A';break;
case
8: a='B';break;
case
7: a='C';break;
case
6: a='D';break;
case
5:
case
4:
case
2:
case
1:
case
0: a='E';
}
printf("%c",a);
}
4.7 给一个不多于5位的正整数,
要求:1.求它是几位数
2.分别打印出每一位数字
3.按逆序打印出各位数字.例如原数为321,应输出123.
#include
#include
void main()
{
long int num;
int
indiv,ten,hundred,housand,tenthousand,place;
printf("请输入一个整数(0-99999):");
scanf("%ld",&num);
if(num>9999)
place=5;
else
if(num>999)
place=4;
else
if(num>99)
place=3;
else
if(num>9)
place=2;
else
place=1;
printf("place=%d\n",place);
printf("每位数字为:");
ten_thousand=num/10000;
thousand=(num-tenthousand*10000)/1000;
hundred=(num-tenthousand*10000-thousand*1000)/100;
ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;
indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case
5:printf("%d,%d,%d,%d,%d",tenthousand,thousand,hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,tenthousand);
break;
case
4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case
3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d\n",indiv,ten,hundred);
break;
case
2:printf("%d,%d\n",ten,indiv);
printf("\n反序数字为:");
printf("%d%d\n",indiv,ten);
break;
case
1:printf("%d\n",indiv);
printf("\n反序数字为:");
printf("%d\n",indiv);
break;
}
}
4.8
1.if语句编程序
main()
{
long
i;
float
bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
if(i<=1e5)
bonus=i*0.1;
else
if(i<=2e5)
bonus=bon1+(i-100000)*0.075;
else
if(i<=4e5)
bonus=bon2+(i-200000)*0.05;
else
if(i<=6e5)
bonus=bon4+(i-400000)*0.03;
else
if(i<=1e6)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf("bonus=% 10.2f",bonus);
}
用switch语句编程序
main()
{ long i;
float
bonus,bon1,bon2,bon4,bon6,bon10;
int
branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
branch=i/100000;
if(branch>10)branch=10;
switch(branch)
{ case
0:bonus=i*0.1;break;
case
1:bonus=bon1+(i-100000)*0.075;break;
case
2:
case
3:bonus=bon2+(i-200000)*0.05;break;
case
4:
case
5:bonus=bon4+(i-400000)*0.03;break;
case
6:
case
7
case
8:
case
9:bonus=bon6+(i-600000)*0.015;break;
case
10:bonus=bon10+(i-1000000)*0.01;
}
printf("bonus=%10.2f",bonus);
}
4.9输入四个整数,按大小顺序输出.
main()
{ int
t,a,b,c,d;
printf("请输入四个数:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("\n\n
a=%d,b=%d,c=%d,d=%d \n",a,b,c,d);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf("\n
排序结果如下: \n");
printf("%d%d%d%d
\n",a,b,c,d);
}
4.10 塔
main()
{
int
h=10;
float
x,y,x0=2,y0=2,d1,d2,d3,d4;
printf("请输入一个点(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x0)*(x-x0)+(y-y0)(y-y0);
d2=(x-x0)*(x-x0)+(y+y0)(y+y0);
d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);
d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);
if(d1>1 &&
d2>1 &&
d3>1 &&
d4>1)
h=0;
printf("该点高度为%d",h);
}