第5天
1、运算符表达式和流程控制语句
1)运算符
算数运算符【+ - * / % ++(自增) --(自减)】
int a =10;
a++;等同于 a = a+1; 等同于 a + = 2
2、赋值运算符【= += -= *= /= %=】
int a = 10;
将10赋值给整型变量 a
a+=3;等同于 a = a+3
a-=3 7
a*=3 30
a%=a a=a%3 1
a/=3; a=a/3
3、比较运算符 【> < >= <= == !=】
int a= 10
int b=9
a>b【成立】在计算机中用1表示真0表示假
printf(“%d\n”,a>b)
3/7
int num =14
14%7=0
3 !=2【成立】
4、逻辑运算符【! && || 】
!【非】非真为假 非假为真
&& 【与】 3&&5 同真为真 其他为假
||【或】 同假为假 其余为真
num% == 0
表达式:通过变量或者常量和运算符 连接起来成为表达式 在程序中表达式的结果可以作为程序掉件出现
运算符表达方式.c
#include <stdio.h>
int main01(void)
{
//比较运算符
//int a = 10;
//int b = 20;
//printf("10 小于 20 : %d\n", a <= b);
//赋值运算符
//int a = 10;
//int b = 20;
////加加在后 先计算表达式的结果在计算变量的值
////a++;
////int c = b * a++;
////加加在前 先计算变量的值在进行表达式计算
////++a;
//int c = b * ++a;
//printf("c=%d\n", c);
//printf("a=%d\n", a);
//逻辑运算符
int a = 10;
int b = 20;
printf("%d\n", (a > b && b > a ));
//int a = 10;
//int b = 20;
//int c = a * (b + a);
return 0;
类型转换
#include<stdio.h>
int main()
{
//char a = 'a';
//int b = a;
//float a = 3.14f;
//int b = (int)a;
//int a = 3;
//float b = (float)a;
int a = 10;
int b = 3;
int c = (float)a / (float)b;
printf("%f\n", c);
return 0;
}
2、类型转换
1)隐式转换
编译器会自动将第一的数据类型转成高的数据类型,转换后的数据正确
2)强制转换
需要程序根据实际用途去转换,得到的结果可能会省略部分值
3、条件选着语句:
1)if语句
格式:if(表达式)【语句 代码】 如果表达式为真 执行括号内代码
格式:if(表达式)【代码】else【代码】如果表达式为真 执行if括号内代码 如果为假执行else【】内代码
格式:if(表达式1)【代码】else if (表示2)【代码】 else if 【代码】else【代码】
练习:三只小组称体重 定义三个变量 可以通过键盘录入体重
int a = 100
2、三目运算符:
表达式?选项1:选项2 如果表达式为 选着选项1 的结果
int c = a > b ? a : b ;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main05()
{
int a = 40;
int b = 50;
int c = 30;
//三目
//int d = a>b ? 1 : 0;
//表达式1?(表达式2?结果1:结果2):(表达式3?结果1:结果2);
int d = a > b ? (a > c ? a : c) :( b > c ? b : c);
printf("%d\n", d);
return EXIT_SUCCESS;
}
4、 switch语句
格式:switch(表达式变量)
{
case 值 1:
代码
break;
sase 值2;
代码;
break;
default:
代码
break;
}
注意:if条件语句执行效率差. switch 条件语句 执行效率更高 if可以判断一个区间 switch用来判断一个值 三目运算符跟简单明了
练习; 通过键盘输出一名学员成绩 通过成绩算出 优秀 良好 及格 不及格
水仙花do...while
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main10()
{
int index = 100;
do
{
//将一个三位数拆解成个位 十位 百位
int a = 0, b = 0, c = 0;
//百位
a = index / 100;
//十位
b = index / 10 % 10;
//个位
c = index % 10;
if (a*a*a + b*b*b + c*c*c == index)
{
printf("%d是水仙花\n", index);
}
index++;
} while (index < 1000);
system("pause");
return EXIT_SUCCESS;
}
for循环的格式
for(初始值;表达式;表达式)
{
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main11()
{
//for (int i = 0; i < 10; i++)
//{
// printf("%d\n", i);
//}
int i = 0;
for (; ; )
{
if (i >= 10)
{
break;
}
printf("%d\n", i);
i++;
}
system("pause");
return EXIT_SUCCESS;
}
嵌套循环
99乘法表 按照样式打印 并输出结果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
//linux 无法编译程序 -std=c90 c99 gcc -o .exe .c -std=c99
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", j, i, i*j);
}
printf("\n");
}
system("pause");
return EXIT_SUCCESS;
}