C语言-分支与循环-7

1、分支语句

(1)if分支

(一)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    float score = 0;
    printf("请输入分数:");
    scanf("%f", &score);
    if (score < 60)
    {
        printf("不及格\n");
    }
    else if (score <= 70)
    {
        printf("普通\n");
    }
    else if (score <= 80)
    {
        printf("一般\n");
    }
    else if (score <= 90)
    {
        printf("良好\n");
    }
    else
    {
        printf("优秀\n");
    }
    return 0;
}

(二)定义常量来表示分数区间的阈值,可以使代码更具可读性和可维护性。同时,添加了输入错误处理,可以避免无效的输入导致程序崩溃。

 stdio.h 头文件之前,使用预处理指令 #define 定义了几个常量:

——FAIL_THRESHOLD:不及格的分数阈值为 60

——PASS_THRESHOLD:及格的分数阈值为 70

——GOOD_THRESHOLD:一般的分数阈值为 80

——EXCELLENT_THRESHOLD:良好的分数阈值为 90

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define FAIL_THRESHOLD 60
#define PASS_THRESHOLD 70
#define GOOD_THRESHOLD 80
#define EXCELLENT_THRESHOLD 90
int main()
{
    float score = 0;
    printf("请输入分数:");
    if (scanf("%f", &score) != 1) 
	{      printf("输入错误,请输入一个合法的浮点数。\n");
        return 1;
    }
    if (score < FAIL_THRESHOLD) {
        printf("不及格\n");
    }
    else if (score <= PASS_THRESHOLD) {
        printf("普通\n");
    }
    else if (score <= GOOD_THRESHOLD) {
        printf("一般\n");
    }
    else if (score <= EXCELLENT_THRESHOLD) {
        printf("良好\n");
    }
    else {
        printf("优秀\n");
    }
    return 0;
}

(2)else悬空(打印内容为空,因为else与最近的if匹配,可通过{}改变匹配的if)

在代码中a的值为0,因此不满足外部条件语句if (a == 1),所以内部的条件语句if(b == 2)会被跳过。所以不会执行任何的printf语句。因此,执行结果为空,没有任何输出。程序正常结束并返回0

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(a==1)
  if(b==2)
     printf("hehe\n");
  else
     printf("haha\n");
return 0;
}

(3)分支语句switch,case--接整型常量表达式

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int day = 0;
	printf("请输入值:");
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("s输入错误!!!\n");
		break;
	}
	return 0;
}

(4)循环语句while、for、do while

1)结果:①1~10;②1~5;③1~4 死循环

while循环中:break用于永久终止循环;continue跳过本次循环(congtinue后的代码),进到判断部分,看是否进行下一次循环

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int i = 1;
	/* 
	① while (i <= 10)
	{
		printf("%d\n", i);
		i++;
	}*/
	/*
	② while (i <= 10)
	{ 
		if (i == 5)
			break;  //打印结果为:1,2,3,4
		printf("%d\n", i);
		i++;
	}*/
	/*
	③ while (i <= 10)
	{
		if (i == 5)
			continue; //打印结果为:1,2,3,4 死循环
		printf("%d ", i);
		i++;
	}*/
	return 0;
}

2)在循环条件中,(ch = getchar()) != EOF这个条件语句会读取输入的字符,并将其赋值给变量ch。如果读取的字符不是文件结束符EOF,循环会继续执行,将该字符输出到标准输出。当输入文件结束时,即按下CTRL+Z(在Windows系统中)或CTRL+D(在LinuxMac系统中),循环条件不满足,程序结束。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}
	return 0;
}

3)写一个程序,用于输入密码,并确认密码是否正确

字符数组 password 的输入并没有使用 & 运算符是因为在 C 语言中,数组名本身就可以表示数组在内存中的地址。因此,当使用sacnf函数读取字符数组时,不需要使用 & 运算符来获取地址。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);   
	printf("请确认密码(Y/N):");
	/*getchar();          //处理缓冲区的‘\n’(只读)
	int ch = getchar();
	if (ch == 'Y')
	{
		printf("确认成功\n");
	}
	else
	{
		printf("确认失败\n");
	}
	return 0;
}*/    
	int tmp = 0;
	while ((tmp = getchar()) != '\n')   //清理缓冲区的字符,scanf读取到空格会停止
	{
		;
	}
	int ch = getchar();
	if (ch == 'Y')
	{
		printf("确认成功\n");
	}
	else
	{
		printf("确认失败\n");
	}
	return 0;
}

4)从键盘读取字符,并判断该字符是否为数字(0-9),如果是数字,则将其输出到屏幕上

定义一个整型变量 ch,并将其初始化为0。

使用 getchar 函数读取用户输入的一个字符,直到遇到文件结束符 EOF。

判断字符是否为数字。如果不是数字,跳过本次循环,继续下一次循环。如果是数字,将该数字字符输出到屏幕上。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		if (ch < '0' || ch>'9')
			continue;
		putchar(ch);
	}
	return 0;
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值