C语言程序设计第五版谭浩强著 第四章部分课后习题答案

#include
main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a==b&&a==c)printf("%d\n",a);
	else if(a>b&&a>c)printf("%d\n",a);
	else if(b>a&&b>c)printf("%d\n",b);
	else if(a==b&&a>c)printf("%d\n",a);
	else printf("%d\n",c);
	return 0;
}

5.使用if语句如果两次都输入大于1000的数,也会计算平方根

#include
#include
main()
{
	int n,m;
	printf("输入一个小于1000的数\n");
	scanf("%d",&n);
	if(!(n<1000)) 
	{
		printf("该数不小于1000请重新输入\n");
		scanf("%d",&n);
	} 
	m=sqrt(n);
	printf("%d\n",m);
	return 0;
}

这里为了防止多次输入大于1000的数 使用了一个while循环 满足条件的时候才会继续

#include
#include
main()
{
	int n,m;
	printf("输入一个小于1000的数\n");
	scanf("%d",&n);
	while(!(n<1000)) 
	{
		printf("该数不小于1000请重新输入\n");
		scanf("%d",&n);
	} 
	m=sqrt(n);
	printf("%d\n",m);
	return 0;
}
#include
main()
{
	double x,y;
	scanf("%lf",&x);
	if(x<1)y=x;
	else if(x<10&&x>=1) y=2*x-1;
	else y=3*x-11;
	printf("%lf\n",y);
	return 0;
}
#include
main()
{
	int grade;
	printf("输入成绩:\n");
	scanf("%d",&grade);
	while(grade<0||grade>100)
	{
	    printf("请重新输入\n");
 	    scanf("%d",&grade);
	}
	if(grade>=90)printf("该同学成绩为 A\n");
	else if(grade>=80&&grade<90)printf("该同学成绩为 B\n");
	else if(grade>=70&&grade<80)printf("该同学成绩为 C\n");
	else if(grade>=60&&grade<70)printf("该同学成绩为 D\n");
	else printf("该同学成绩为 E\n");
	return 0;
}
#include
main()
{
	int num,count,sd,td,hd,thd,ad;
	printf("输入一个不多于5位的数: ");
	scanf("%d",&num);
	while(num>99999)
	{
		printf("请重新输入\n");
		scanf("%d",&num);
	}
	if(num>9999)count=5;
	else if(num>999&&num<=9999)count=4;
	else if(num>99&&num<=999)count=3;
	else if(num>9&&num<=99)count=2;
	else count=1;
	printf("该数位数 = %d\n",count);
	sd=num%10;
	td=num%100/10;
	hd=num%1000/100;
	thd=num%10000/1000;
	ad=num/10000;
	if(count==5)
	{
		printf("每一位数字分别是: ");
		printf("%d %d %d %d %d \n",ad,thd,hd,td,sd);
		printf("逆序输出:");
		printf("%d%d%d%d%d\n",sd,td,hd,thd,ad); 
	}
	if(count==4)
	{
		printf("每一位数字分别是: ");
		printf("%d %d %d %d \n",thd,hd,td,sd);
		printf("逆序输出:");
		printf("%d%d%d%d\n",sd,td,hd,thd); 
	}
	if(count==3)
	{
		printf("每一位数字分别是: ");
		printf("%d %d %d \n",hd,td,sd);
		printf("逆序输出:");
		printf("%d%d%d\n",sd,td,hd); 
	}
	if(count==2)
	{
		printf("每一位数字分别是: ");
		printf("%d %d \n",td,sd);
		printf("逆序输出:");
		printf("%d%d\n",sd,td); 
	}
	if(count==1)
	{
		printf("每一位数字分别是: ");
		printf("%d\n",num);
		printf("逆序输出:");
		printf("%d\n",num); 
	}
	return 0;
}
#include
main()
{
	int a,b,c,d,t;
	printf("请输入4个数: ");
	scanf("%d%d%d%d",&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("从小到大依次是: ");
	printf("%d %d %d %d \n",a,b,c,d);
	return 0;
}
#include
#include
main()
{
	double x,y;
	int x1=-2,x2=2,x3=2,x4=-2,y1=2,y2=2,y3=-2,y4=-2,h;
	printf("输入点的坐标: ");
	scanf("%lf%lf",&x,&y);
	if(x==0||y==0) h=0;
	else if(x<0&&y>0) 
        {
        	if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<=1) h=10;
        	else h=0;
        }
	else if(x>0&&y>0) 
      	{
 		    if(sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))<=1) h=10;
        	else h=0;
    	}
	else if(x>0&&y<0)
	    {
    		if(sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3))<=1) h=10;
        	else h=0;
    	} 
	else if(x<0&&y<0)
	    {
    		if(sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4))<=1) h=10;
        	else h=0;
    	} 
    	printf("高度是: ");
		printf("%d\n",h);
    	return 0;
}

你可能感兴趣的:(新的开始)