C语言流程控制

C语言流程控制

选择结构
1.if…else…
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:计算函数
*/


int main()
{
	float x;
	float y;
	
	puts("请输入x的值:");
	scanf("%f",&x);
	
	if(x<1){
		y = x;
	}else if(x >= 1 && x < 10){
		y = 2 * x - 1;
	}else{
		y = 3 * x - 11;
	}
	printf("输入x的值是%f,输出y的值是%f\n",x,y);
	
	return 0;
}
2.switch…case…
#include <stdio.h>

int main()
{
	
	int data;
	printf("请输入一个数:\n");
	
	scanf("%d",&data);
	
	switch(data){
		case 1:    //case中传递的也可以是字符,如‘A’、‘B’、'C'
			puts("满足了条件1的情况");
			break;
		case 2:
			puts("满足了条件2的情况");
			break;
		case 3:
		case 4:
			puts("满足了条件3和4的情况");
			break;
		default:
			puts("其他非列表中的情况");
	}
	
	
	return 0;
}
#include <stdio.h>

/*
	auth:wanglisha
	date:2022.09.13
	desc: 根据分数划分等级
*/

int main(){
	
	int score;
	char level;
	
	puts("请输入您的分数:");
	scanf("%d",&score);
	
	switch(score/10){
		case 0:
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			level = 'E';
			break;
		case 6:
			level = 'D';
			break;
		case 7:
			level = 'C';
			break;
		case 8:
			level = 'B';
			break;
		case 9:
		case 10:
			level = 'A';
			break;
		default:
			break;
			
	}
	
	printf("您输入的成绩是%d,您的等级是%c",score,level);
	
	return 0;
}
3.计算折扣

在这里插入图片描述

#include <stdio.h>

/*
	auth: wanglisha.
	date: 2022.09.12
	funDesc: switch case 实现路程折扣
*/

int main()
{
	int howFar;
	int count;
	
	puts("请输入路程:");
	scanf("%d",&howFar);

	if(howFar<250){
		count = 0;
	}else if(howFar >= 250 && howFar < 500){
		count = 2;
	}else if(howFar >= 500 && howFar < 1000){
		count = 5;
	}else if(howFar >= 1000 && howFar < 2000){
		count = 8;
	}else if(howFar >= 2000 && howFar < 3000){
		count = 10;
	}else{
		count = 15;
	}
	
	printf("折扣是:%.2f\n",(float)count/100);
	
	return 0;
}
4.函数计算

在这里插入图片描述

#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:计算函数
*/


int main()
{
	float x;
	float y;
	
	puts("请输入x的值:");
	scanf("%f",&x);
	
	if(x<1){
		y = x;
	}else if(x >= 1 && x < 10){
		y = 2 * x - 1;
	}else{
		y = 3 * x - 11;
	}
	printf("输入x的值是%f,输出y的值是%f\n",x,y);
	
	return 0;
}
5.计算成绩

在这里插入图片描述


6.计算0到100的和
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:计算0到100的和
*/

int main(){
	
	int sum = 0; //变脸最好初始化成0,这是一个好习惯
	int data = 1; // 变量的类型、变量的值、变量的内存空间、变量的名称
	
	while(data <= 100){
		printf("data=%d\n",data);
		sum = sum + data;
		data++;
	}
	printf("0到100的和是%d\n",sum);
	
	return 0;
}
while循环控制语句
while死循环
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:do while的使用——日后再说
*/

int main(){
	
	int data = 0;
	
	/*
	while(data != 0){
		printf("this is a test\n");
		data--;
	}
	*/
	
	//这是一个死循环,日后再说
	do{
		printf("this is a test\n");
		data --;
	}while(data!=0);
	
	return 0;
}
while循环的应用
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:while循环的应用
	
	times--;   ==  time = time - 1;
	times++;   ==  time = time + 1;
*/

int main(){
	
	int times;
	times  = 0;
	
	//这里wihile的值需要避免死循环,除了c51单片机之外
	while(times<10){   // 这里的1010是一个逻辑值,表示一直满足的意思,ctrl+c才能结束程序
		puts("I LOVE YOU");
		//times = times - 1;   等价于
		//times--;
		//times = times + 1;  等价于
		times++;
		printf("times:%d ",times);
	}//条件不满足,推出循环
	
	return 0;
}
for循环控制语句
#include <stdio.h>

int main(){
	
	int data = 0;
	// 表达式1:赋初值
	// 表达式2:判断临界条件
	// 表达式3:条件改变
	//for(表达式1;表达式2;表达式3){
		
	//}
	for(;data<10;){
		puts("test 01");
		data ++;
	}
	
	//for死循环
	/*
	for(;;){
		puts("test 01");
	}
	*/
	
	//for循环中可以定义循环变量
	for(int j = 0;j< 10;j++){
		puts("test 02");
	}
	
	
	return 0;
}
break提前结束循环
#include <stdio.h>

int main(){
	int numOfPerson = 1;
	int totalMoney = 0;
	int money;
	while(numOfPerson<=1000){
	//for(numOfPerson=1;numOfPerson<1000;numOfPerson++){
		puts("请输入捐款的数目:");
		scanf("%d",&money);
		totalMoney = totalMoney + money;
		if(totalMoney >= 100000){
			puts("很棒,以及到达10万元\n");
			break;
		}
		numOfPerson++;
	}
	
	printf("总捐款人数是%d\n",numOfPerson);
	printf("每个人的平均捐款数据是%.2f\n",(float)totalMoney/numOfPerson);
	
	return 0;
}
continue提前结束本次循环
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc:  continue 获取100到200中所有能被3整除的数
*/

int main(){
	
	int data;
	
	for(data=100;data<200;data++){
		if(data % 3 == 0){
			continue;
		}
		printf("%d ",data);
	}
	return 0;
}
循环嵌套
#include <stdio.h>

int main(){
	
	int i,j;
	
	for(i=1;i<=4;i++){
		for(j=1;j<=5;j++){
			printf("%d   ",i*j);
		}
		printf("\n");
	}
	
	return 0;
}
求两数的最大公约数和最小公倍数
#include <stdio.h>

/*
	auth: wanglisha.
	data: 2022.09.13
	desc: 求nm的最小公倍数、最小公约数
	1.什么是最大公约数?
	能够整除多个整数的最大正整数,多个整数不能为0
	例如8和12的最大公约数是4
	2.什么是最小公倍数?
	两个会或多个整数公有的倍数叫做他们的公倍数,除了0之外最小的倍数叫做最小公倍数
	例如6和24的最小公倍数为24
*/

int main(){
	
	int n,m,temp;

	// 输入2个数
	printf("请输入任意2个非0整数:\n");
	scanf("%d%d", &m,&n);
	
	// 比较2个数的大小,m存储大值
	if(n>m){
		// 替换m和n的值
		temp = n;
		n = m;
		m = temp;
	}
	
	// 从最大的数开始找最大共倍数  同时满足能整除 2个数 的值
	for(int i=m;i>0;i++){
		if(i%m==0 && i%n==0){  // 能被整除 即为 取余为0
			printf("%d 和 %d 的最大公约数为:%d\n", m,n,i);
			break;
		}
	}
	
	// 条件满足则退出循环
	
	
	return 0;
}

上面是求最大公倍数,下面是求最小公约数:

int main(){
	
	int n,m,temp;

	// 输入2个数
	printf("请输入任意2个非0整数:\n");
	scanf("%d%d", &m,&n);
	
	// 比较2个数的大小,m存储大值
	if(n>m){
		// 替换m和n的值
		temp = n;
		n = m;
		m = temp;
	}
	
	// 按照从大到小的顺序查找公约数
	for(int i=n;i>0;i++){
		if(m%i==0 && n%i==0){  // 能被整除 即为 取余为0
			printf("%d 和 %d 的最大公约数为:%d\n", m,n,i);
			break;
		}
	}
	
	// 条件满足则退出循环
	
	
	return 0;
}
使用C语言求水仙花数
#include <stdio.h>

/*
	auth:wanglisha.
	date:2022.09.13
	desc: 使用C语言求水仙花数
	什么是水仙花数?
	水仙花数是指一个三位数,他的每个位上的数字的3次幂之和等于他本身;
	例如:1^3 + 5^3 + 3^3 = 153
*/

int main(){
	
	int n;
	int shi;
	int bai;
	int ge;
	
	printf("所求水仙花数:\n");
	for(n=100;n<1000;n++){
		bai = n/100;
		shi = n/10%10;
		ge = n%10;
		if(n == (bai*bai*bai + shi*shi*shi + ge*ge*ge)){
			printf("%-5d",n);
		}
	}
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值