C语言第二次学习

bool数据类型

C语言中没有定义true和false

C语言用0表示false,用非0(不止1)表示true

几种常见的数据类型表示范围

int:10^9

long:10^9

long long:10^18

float:精确表示小数点后6位数,6位后可能出现差错

double:15位

注意:%f 默认%.6f

浮点数的几个注意事项

1)比较两个浮点数

如果两个浮点数都是由常熟直接赋值,这样比较不会出差错

#include <stdio.h>
int main(){
	float a=2.7+2.6,b=5.3; 
	if(a==b){
		printf("相等"); 
	}else{
		printf("不相等"); 
	}
	return 0;
}

2)浮点数的除法运算

两整型相除,结果为整除的结果

如果有浮点数参与运算,结果是准确的结果

#include <stdio.h>
int main(){
	int a=5,b=2; 
	float c=a*1.0/b;
	float d=a/b;
	printf("%f %f",c,d); 
	return 0;
}

3)自动类型转换

计算机中,要求操作数必须有相同的大小(eg:char和int)和储存方式(整数:原码,反码,补码)(小数:IEEE754标准),这些不能运算。

C语言,表达式中出现不同的类型进行运算,较低类型将向较高类型转换(即所占字节数较少的类型向占字节数较多的类型转换)

当操作数中没有double类型,转为整型

#include <stdio.h>
int main(){
	int a=5,b; 
	char c='a';
	short d=1;
	b=a+c+d;
	printf("%d",b); 
	return 0;
}

有double类型则转为double类型

#include <stdio.h>
int main(){
	int a=5; 
	char c='A';
	double d=1.0;
	d=a+c+d;
	printf("%d",sizeof(d)); 
	return 0;
}

若赋值时左右类型不一致,会将右边的变为左边的类型

增大精度:

double a;

a=5.0;

降低精度:

int a;

a=1.567890123;

程序出错:

右值超出左值,结果可能无意义

强制类型转化

#include <stdio.h>
int main(){
	float a;
	a=1.567890123;
	printf("%d",(int)a);
	return 0;
}

表达式计算

概念:一系列运算符和算子的结合,用来计算一个值

运算符:+ - * /

算子:参与运算的值

运算符

自增自减运算符

a++:a=a+1

a--:a=a-1

二元运算符

+= -= *=

a+=1:a=a+1

a-=1: a=a-1

a*=1:a=a*1

关系运算符

> < =

优先级

C语言运算符优先级

判断

if

条件成立则执行程序,不成立则执行下一条

格式:

if(判断){

      条件成立:执行的语句

}

else:否则

#include <stdio.h>
int main(){
	if(1>2){
		printf("0");
	}else{
		printf("1");
	}
	return 0;
}

逻辑运算符优先级

从左到右

#include <stdio.h>
int main(){
	if(6>5>4){
		printf("yes");
	}
	return 0;
}

> <优先级大于=

#include <stdio.h>
int main(){
	if(5>3==6>4){
		printf("yes");
	}
	return 0;
}

if嵌套

#include <stdio.h>
int main(){
	if(1==1 && 2==2){
		printf("yes\n");
	}
	if(1==1){
		if(2==2){
			printf("yes");
		}
	}
	return 0;
}

&&:且

switch case

循环

for循环

格式:for(判断){

         循环体

}

如:1~100的和

#include <stdio.h>
int main()
{
	int sum=0;
	int i;
	for(i=0;i<=100;i++){
		sum+=i;
	}
	printf("%d",sum);
	return 0;
}

i=0;若i<=100,执行循环体,然后i++,若i<=100,执行循环体......直到i<=100不成立,执行下一条程序。

while循环

格式:

while(条件){

        循环体

}

如求最大公约数

#include <stdio.h>
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	int t;
	while(b!=0){
		t=a%b;
		a=b;
		b=t;
	}
	printf("%d",a);
	return 0;
}

do while循环

格式:

do {

        循环体

}while(条件)

先执行一次循环,再判断条件是否成立,成立则继续循环,否则进入下一条程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值