SCAU高级语言程序设计--实验4 选择结构(2)
二、堂下练习
1、判断整数是否为平方数
题目:由键盘输入一个正整数,判断该数是否为平方数,是输出Y,否则输出N
思路:先开平方,再平方即可,因为如果不能开平方,b会取有限小数,所以两个b相乘不能得原数。
#include<stdio.h>
#include<math.h>
int main(){
int a,b;
scanf("%d",&a);
b = sqrt(a);
if(b*b==a)
printf("Y");
else
printf("N");
return 0;
}
注意:数学函数记得加头文件“math.h”(其他常用数学函数可参考P26)
2、求数的位数
题目:由键盘输入一个不多于9位的正整数,要求输出它是几位数。
思路:熟悉if和else-fi的用法。当然也可以用第二种方法,
#include<stdio.h>
#include<math.h>
int main(){
int n,w;
scanf("%ld",&n);
if(n > 99999999)
p = 9;
else if(n > 9999999)
p = 8;
else if(n > 999999)
p = 7;
else if(n > 99999)
p = 6;
else if(n > 9999)
p = 5;
else if(n > 999)
p = 4;
else if(n > 99)
p = 3;
else if(n > 9)
p = 2;
else
p = 1;
printf("%ld\n",p);
return 0;
}
3、判断点是否在圆上
题目:由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆(圆心在坐标0,0)上,点在圆上输出Y, 不在圆上输出N。 使用小数点后3位精度进行判断。
思路:点到圆心的距离-单位圆1的距离。由于要精确到小数点后三位,如果该距离小于0.001,则就在圆里。
#include<stdio.h>
#include<math.h>
int main(){
float a,b;
scanf("%f,%f",&a,&b);
if(fabs(a * a + b * b - 1) < 0.001 )
printf("Y\n");
else
printf("N\n");
return 0;
}
主要:整形的绝对值为abs()函数,浮点型的用fabs();