流程判断语句

一、选择结构和判断语句

注意 当报错提示 \243 ,\272 就是代码中有中文字符。

1.1 if ...else 语句
#include <stdio.h>   // 预处理
 //流程控制if语句
int main()    // 函数入口
{
	int money;   // 定义一个变量,变量名为money
 	printf("你有多少钱?\n");  // 输出:"你有多少钱“,这句话,\n 是换行符。
	scanf("%d",&money);   // 在键盘上输入数字,&:是取地址。
	
	if(money >= 100)  //如果超过100元;
		 // == 是等于号(判断),= 是赋值。
		// if()括号的内容终将会转成1,0.
		//只有是1(true)才会执行大括号中的代码语句。
	{
		printf("有钱人\n");   //键盘输出:"有钱人",这句话。
	}
	
	/*getchar 获取字符,
	putchar输出字符,
	puts 输出一个字符串,
	gets输入一个字符串*/
	
	puts("谈话结束");     // 不管超没超过100元,都输出:”谈话结束“这句话。
	printf("测试结果:%d\n",money>=100);
	
	// 这里的money>=100是一个表达式,判断是否大于100,
	
	//如果满足(大于或等于)返回1,如果不满足(小于)返回0.
	return 0;  
	
}

输入三个数,从小到达输出

#include <stdio.h>
// 代数法。

// 从小到达输出。
int main()
{
 
	int data1;
	int data2;
	int data3;
	int datatmp;  //不管怎么输入,小数一定在前面
	
	printf("请输入三个数:\n");
	scanf("%d%d%d",&data1,&data2,&data3);
	
	 // 3      2
	if(data1>data2){
		// 如果3>2 就进行互换,
		printf("=============进行交换\n");
		datatmp = data1 ;
		// 3 = datatmp
		data1 = data2 ,
		// 2 = data2
		data2 = datatmp ;
		if(data1>data3){
		// 如果2 > 1 ,着进行互换
		printf("---------进行交换\n");
		datatmp = data1 ;
		 // 2 =datatmp
		data1 = data3 ;
		 // 1 = data2
		data3 = datatmp;
		 // 2 = data3
	}
	}
		if(data2>data3){
		// 如果2 > 1 ,着进行互换
		printf("---------进行交换\n");
		datatmp = data2 ;
		 // 2 =datatmp
		data2 = data3 ;
		 // 1 = data2
		data3 = datatmp;
		 // 2 = data3
		// 3 = data2
		
	
	
	
	}
	
	printf("%d,%d,%d\n",data1,data2,data3);
    return 0;
}

逻辑运算符

#include <stdio.h>


 //逻辑运算符
 
int main()
{
	int a;
	int b;
	
	printf("请输入a,b两个数:\n");
	scanf("%d%d",&a,&b);
	
	if( a==1 && b==0)  //判断 同时满足,执行下面代码  并且
	{
		printf("逻辑与成功\n");
		
	}
    if( a==1 || b==0)  //判断 满足其中一个条件,执行下面代码  或者
	{
		printf("逻辑或成功\n");
	}
	
	if( !a )  //判断 相反结果
	// 如果输入1 那就是非a(非1)=0,就是假,不执行下面代码
	// 如果输入0 那就是非a(非0)=1,就是真,执行下面代码
	{
		printf("逻辑非\n");
	}
	
	return 0;
	
}

if语句练习

#include <stdio.h>

int main()
{
	int havaMoney;   // 先定义变量名
	int handSome;
	int people;
	
	puts("你是哪里人,莆田扣0,其他扣1");
	scanf("%d",&people);
	if(people != 1 )
		{
			puts("不嫁莆田人\n");
		return 1;
		}
		
	// 第一个if判断是不是莆田人,
	// 如果不是继续向下执行,如果是直接终止。
	
				puts("你有钱吗?有钱扣1,没钱扣0");
				scanf("%d",&havaMoney);
				
				
				puts("你帅吗?帅扣1,不帅扣0");
				scanf("%d",&handSome);
				
				if(havaMoney == 1 && handSome == 1)
				{
					printf("我既有钱,也帅\n");
					puts("高富帅");
				}
				// 这个的if判断是否有钱,是否帅,
				// 如果都满足就输出:”高富帅“,如果不满足程序就向下执行。
				if(havaMoney == 1 || handSome == 1)
				{ 
					printf("我条件还凑合\n");
					puts("我们可以考虑一下");
				}  //这里的if判断是否满足其中的某一项。
				  // 如果满足其中某一项,就输出:”可以考虑一下“。
				   //如果都不满足,就向下执行程序。
				if(havaMoney != 1 && handSome != 1)
				{
					printf("我没钱,没车,没房,没颜值\n");
					puts("你个瘪三");
				}  //这里if判断,如果都不满足,就输出你是:”瘪三“。

				puts("相亲结束");
		
	return 0 ;
}

1.2if() ...else if
#include <stdio.h>
int main()
{
	int body;
	int money;
	int rich;
	int play;
	
	puts("你身体怎么样");
	scanf("%d",&body);
	
	if(body == 1){
		puts("你家庭条件怎么样,有没有车房 (tips:输入两个整数)");
		scanf("%d%d",&money,&rich);
		if(money ==1 && rich ==1){
			puts("你愿意给我花钱吗?");
			scanf("%d",&play);
		    if(play ==1){
				puts("条件还不错,我很满意");
			}else{
				printf("对不起,我没有看上你");
			}
			
		}else if(money ==1 || rich ==1){
			puts("条件还不错,我考虑一下");
			
		}else{
			puts("不好意思,我零时有点事,失陪了");
		}
			
	
	}else{
		printf("我们不能做朋友,你的身体太差了");
	}
	
	return 0;
}

switch语句:

#include <stdio.h>

int main()
{
	
	int score;   // 定义一个变量
	char cdata;
	char cdata1;
	char cdata2;
	char cdata3;
	puts("请输入分数!");   // 使用puts输出语句,
							//	与printf的区别在于,puts只能输出字符串,并且自带换行。
	scanf("%d",&score);     // 在键盘上输出数据。
	  
	switch(score/10){  // 这里定义的是int(整数类型的):89/10 就是8.   如果 score =x
		case 0 :    //case == 0 ;   满足0
		case 1 :	//case == 1 ;   满足1
		case 2 :	//case == 2 ; 	满足2
		case 3 :	//case == 3 ;	满足3
		case 4 :	//case == 4 ;	满足4	
		case 5 :	//case == 5 ;	满足5
			// 满足1到5 执行下面语句
			printf("等级为D,不及格,学渣\n");
			break ;		//切换 跳出循环
		case 6 :	//case == 6 ;
		case 7 :	//case == 7 ;
			// 满足6到7 执行下面语句
			printf("等级为c,一般般,混日子吧\n");
			break ;		//切换 跳出循环
		case 8 :	//case == 8 ;
		case 9 :	//case == 9 ;
			// 满足8到9 执行下面语句
			printf("等级为B,良好,还不错\n");
			break ;  	//切换 跳出循环
		case 10:	//case == 10 ;
			// 满足10 执行下面语句
			printf("等级为A,优秀,很棒帮\n");
			break ;		//切换 跳出循环
		
		default:   // 不满足以上,会怎么样
			printf("成绩无效,请重新输入\n");
	}
	
	printf("请输入一个字符:\n");
	
	 // 第十行里有个scanf 需要吸收一个回车符
	getchar();
	scanf("%c",&cdata);
	// 当代码中出现了多个scanf语句,需要在后面scanf语句前加一个getchar
	
	switch(cdata){
		case'a':
			puts("满足条件a的情况");
			break;
		case'b':
			puts("满足条件b的情况");
			break;
		case'c':
			puts("满足条件c的情况");
			break;
		default:
			printf("请输入正确字符");
	}
	printf("请输入一个字符:\n");
	
	 // 第十行里有个scanf 需要吸收一个回车符
	getchar();
	scanf("%c",&cdata1);
	// 当代码中出现了多个scanf语句,需要在后面scanf语句前加一个getchar
	
	switch(cdata1){
		case'a':
			puts("满足条件a的情况");
			break;
		case'b':
			puts("满足条件b的情况");
			break;
		default:
			printf("请输入正确字符");
	}
	printf("请输入一个字符:\n");
	
	 // 第十行里有个scanf 需要吸收一个回车符
	getchar();
	scanf("%c",&cdata2);
	// 当代码中出现了多个scanf语句,需要在后面scanf语句前加一个getchar
	
	switch(cdata2){
		case'a':
			puts("满足条件a的情况");
			break;
		case'b':
			puts("满足条件b的情况");
			break;
		default:
			printf("请输入正确字符");
	}
	
	puts("pone!");    // 结束
	return 0 ;
}

二、while循环

while循环的底层逻辑是,三个表达式

第一个表达式,条件的初始值。 int wacher =0;

第二个表达式,条件的临界值。 wacher < 10;

第三个表达式,条件发生变化。 wacher ++

当条件为真时,就循环一次。直到条件不为真时,停止当前循环,并且跳出循环。

#include <stdio.h>

int main()
{ 
   int times;
	times =10;
	while(times){
	// 只要条件为真,就一直执行,if,只执行一次。
	// 要避免死循环,到一定程度上要能满足退出条件,除c51单片机
		puts("我爱你1");
		printf("times = %d\n",times);
		times = times - 1;  // while不仅仅是执行puts语句,是在执行过程中进行判断
		                    // 当条件为真时就输出,当times == 0 ;循环结束
							// 自减:times -- == times =times - 1 
		
	}
	 // 另一种思路
	 int wacher = 0 ;
	   // 0,1,2,3,4,5,6,7,8,9
	     // 注意不能写成wacher <=10,不然就会输出成 0,1,2,3,4,5,6,7,8,9,10;
		 // 在计算机中0也算数字。
	 while(wacher < 10){
		puts("我爱你");
		printf("wacher = %d\n",wacher);
		wacher ++;
		
	}
	return 0;
}

2.1计算1到100的和。

思路:首先是定义两个变量sum和date,数字和1到100的和

引入while循环 目的是使循环到100就停止,

我们一步步来,先来循环出1到100,

然后在理解一下题的意思,计算1到100所有数据的和。

ge:1+0 =1

2+1 =3

3+3 =6

4+6=10...

在循环内写出累加0到100的和的式子

最后循环通过数字递增来实现0到100的相加

最后在循环外面 输出0到100的总和

当理解题的意思之后,就开始写代码

#include <stdio.h>

int main()  // 一共有三个表达式
{
    int sum = 0; //变量最好初始化成0,编码习惯。
	int data = 1; //第一个表达式,条件的初始值。

	// <10 0,1,2,3,4,5,6,7,8,9
	//<=10 0,1,2,3,4,5,6,7,8,9,10

	// 当data变量满足这个条件就开始打印。
	while(data < 101){  //第二个表达式,条件的临界值。
	// 只要条件为真,就一直执行,if,只执行一次。
	// 要避免死循环,到一定程度上要能满足退出条件,除c51单片机
		printf("data = %d = %d + %d\n",data,sum,data);
		sum = sum + data ;
		data ++ ; // 第三个表达式,条件发生变化。
		/*第一次循环
		sum = 0 +1 ;
		 第二次循环
		 sum = 1+1 
		 第三次循环
		 sum = 2 +1*/

	}
	printf("0到一百的和是%d\n",sum);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值