运算符表达式和流程控制语句

运算符表达式和流程控制语句

1、运算符

1、算数运算符【+ - * / % ++( 自增 ) --(自减)】
int a =10;
a++;等同于 a = a+1; 等同于 a += 2
++a;
2、赋值运算符【 = += -= *= /= %=】
int a=10;
将10赋值给整型变量a
//a+=3;等同于 a=a+3
a -= 3; 7
a *= 3; 30
a %=3;a=a%3; 3…1 1
a /=3; a =a/3;
3、比较运算符【 > < >= <= == !=】
int a=10;
int b=9;
a>b【成立】在计算机中用1表示真 用0表示假
printf("%d\n",a>b);
int num =14;
num % 7 == 0
14 %7 = 2 … 0
3 != 2【成立】
4、逻辑运算符【! && ||】
!【非】 非真为假 非假为真
&&【与】 同真为真 其余为假
||【或】 同假为假 其余为真

#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;

}

表达式:通过变量或者常量和运算符连接起来成为表达式 在程序中表达式的结果可以作为程序的条件出现

2、类型转换

 1、隐式转换
      编译器会自动将低的数据类型转成高的数据类型,转化后的数据正确
 2、强制转化
      需要程序根据实际用途去转化,得到的结果可能会省略部分的值

3、条件选择语句:

1、if语句
格式: if(表达式){ 语句 代码} 如果表达式为真 执行括号内代码
格式:if(表达式){ 代码}else {代码}如果表达式为真 执行if括号内代码 如果为假执行else{}内代码
格式:if(表达式1){代码} else if(表达式2){代码}else if(表达式3){代码}else{代码}
格式

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main03()
{
	int a = 20;
	int b = 20;
	if (a > b)
	{
		printf("a<b\n");
	}
	else if (a == b)
	{
		printf("a==b");
	}
	else
	{
		printf("a>b\n");

	}
	printf("程序执行结束!\n");
	//system("pause");
	return EXIT_SUCCESS;
}

在这里插入图片描述在这里插入图片描述
练习: 三只小猪称体重 定义三个变量 可以通过键盘录入体重

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{

	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if (a > b)
	{
		if (a > c)
		{
			printf("a重 :%d\n", a);
		}
		else
		{
			printf("c重 : %d\n", c);
		}
	}
	else
	{
		if (b > c)
		{
			printf("b重 :%d\n", b);
		}
		else
		{
			printf("c重 : %d\n", c);

		}
	}
	system("pause");
	return EXIT_SUCCESS;
}

在这里插入图片描述
2、三目运算符
格式:表达式? 选项1【表达式】:选项2【表达式】 如果表达式为真 选择选项1 的结果 如果为假选择选项2

#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;
}

3、switch语句

     格式:switch(表达式)
               {
               case 值1:
               代码
               break;
               case 值2:
               代码;
               break;
               default:
               代码
               break;

               }

练习:通过键盘输入一名学员成绩 根据成绩【0-100】算出 优秀【90 100】 良好【80 99】 及格【60 -79】 不及格【0-59】

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main06()
{
	int a;
	scanf("%d", &a);
	//switch (a)
	//{
	//case 1:
	//	printf("a的值为:%d", a);
	//	break;
	//case 10:
	//	printf("a的值为:%d\n", a);
	//	break;
	//default:
	//	printf("a是啥?\n");
	//	break;
	//}
	
	switch (a/10)
	{
	case 10:
		//printf("优秀\n");
		//break;
	case 9:
		printf("优秀\n");
		break;
	case 8:
		printf("良好\n");
		break;
	case 7:
		//printf("及格\n");
		//break;
	case 6:
		printf("及格\n");
		break;
	default:
		printf("不及格\n");
		break;
	}

	return EXIT_SUCCESS;
}

注意:if条件语句执行效率差 switch 条件语句 执行效率高 if可以判断一个区间 switch用来判断一个值 三目运算符结构简单明了

在这里插入图片描述
练习:从1到100 所有7的倍数 带7的全部略过 17 71
1、循环
2、条件判断
3、跳出本次循环,继续下次循环

70/10 == 7

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main08()
{
	int index = 0;
	while (index <= 100)
	{
		index++;
		//条件: 1、带7  2、7的倍数  35
		if (index % 7 == 0 || index % 10 == 7 || index / 10 == 7)
		{
			//跳出
			continue;
		}
		printf("数字:%d\n", index);
	}


	system("pause");
	return EXIT_SUCCESS;
}

练习:水仙花100 到999所有三位数的各个位数的立方和等于概述本身 那么她就是一个水仙花 153 =1+125+27 =153

#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;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main12()
{

	for (int i = 100; i < 1000; i++)
	{
		//将一个三位数拆解成个位 十位 百位
		int a = 0, b = 0, c = 0;
		//百位
		a = i / 100;

		//十位 
		b = i / 10 % 10;
		//个位
		c = i % 10;
		if (a*a*a + b*b*b + c*c*c == i)
		{
			printf("%d是水仙花\n", 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
for(int i=1;i<=9;i++)//3 4
{
     for(int j=1;j<=i;j++)
     {
          printf("%d*%d=%d ",j,i,j*i);
     }
printf("\n");
//putchar('\n');
     

}

练习:等腰三角形

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{

	int row;
	printf("请输入行数:\n");
	scanf("%d", &row);
	for (int i = 1; i <= row; i++)
	{
		for (int j = 1; j <= row - i; j++)
		{
			printf(" ");
		}
		for (int k = 1; k <= i * 2 - 1; k++)
		{
			printf("*");
		}
		printf("\n");

	}

	system("pause");
	return EXIT_SUCCESS;
}

练习:猜数字 猜1-100之内的数 如果你猜的数小于【数字】 提示你输入的数字太小了 如果你猜的数大于【数字】 提示你输入的数字太大了
如果你的输入的数字等于【数字 】 恭喜你才对了 程序退出

使用随机数
1、导入头文件 time.h #include <time.h>
2、生成随机数种子 每次生成的随机数不一样
3、生成随机数 int num=rand()%100+1;1-100

int num = rand()%100+1;
int value;
for(;;)while(1)
{
printf("请输入一个整数\n")
scanf("%d",&value);
if(value>num)
{
     printf("你输入的数太大了\n");
}
else if(value<num)
     printf("你输入的数太大了\n");
else
{
     printf("输入正确\n");
     ;
}

}
#define _CRT_SECURE_NO_WARNINGS
#include <time.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main15()
{
	//加入随机数种子
	srand((unsigned int)time(NULL));
	int num = rand()%100+1;//1-100
	int value;
	while (1)//for(;;)
	{
		scanf("%d", &value);
		if (value > num)
			printf("您输入的数太大了\n");
		else if (value < num)
			printf("您输入的数太小了\n");
		else
		{
			printf("恭喜您!中奖啦~\n");
			break;
		}
	}


	system("pause");
	return EXIT_SUCCESS;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值