300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言课后作业答案第五版第4章 《C语言程序设计》课后习题答案(第四章)

c语言课后作业答案第五版第4章 《C语言程序设计》课后习题答案(第四章)

时间:2019-10-16 10:27:44

相关推荐

c语言课后作业答案第五版第4章 《C语言程序设计》课后习题答案(第四章)

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);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。