按位与:&,只有11才为1
按位或:|,只有00才为0
按位异或:^,只有01才为1
按位取反:~,0变为1
左移位:x<<n,左移n位。00001111左移3位->01111000
右移位:x>>n,右移n位。
1、有符号位,左边补上符号位的数,无符号位左边补0
00001111右移3位->0000001
11110001右移三位->11111110
5.4习题
//任意输入三条边,看是否构成三角形,并计算它的面积
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,s,area;
s=(a+b+c)/2;
if(a+b>c&&a+c>b&&b+c>a)
{
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
else
{
printf("不能构成三角形\n");
}
}
//输入某年某月,确定该月的天数
#include<stdio.h>
#include<stdlib>
int main()
{
int year,month,flag=0;
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d",&year,&month);
if(month<1&&month>12)
{
printf("输入错误\n");
exit(0);
}
else
{
if(year%400==0||year%4==0&&year%100!=0)
{
flag=1;//为闰年
}
if(flag&&month==2)
{
printf("days=29\n");
}
else
{
printf("days=%d\n",days[month-1]);
}
}
}
来源:CSDN
作者:身影王座
链接:https://blog.csdn.net/qq_42148307/article/details/104789363