IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言入门—选择结构程序设计 -> 正文阅读

[C++知识库]c语言入门—选择结构程序设计

一、选择结构程序设计?

我们在生活中经常会面临着各种选择,不同的选择有着不同的结果,c语言有两种选择语句:if语句switch语句。

?if语句? ? ? ????

?if(表达式 )语句;表达式为真时,执行语句,为假时,不执行。

?f-else? ? ? ? ? ? ? ?

?if (表达式)语句;

else? 语句2;

?if -? else if? - else

?

?if(表达式1)语句1;? else if(表达式2)语句2;? ------else if(表达式m)语句m;?else 语句n;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?应用举例,实现以上函数

#include<stdio.h>
int main()
{
	int x = 0; int y = 0;
	scanf("%d", &x);
	if (x < 0)
		y = -1;
	else if (x == 0)
		y = 0;
	else
		y = 1;
	printf("%d", y);
	return 0;
}

?悬空else :else总是和它上面距离最近的没有匹配的if语句相匹配

?此代码的功能即实现上述函数,悬空else的匹配如下

注意:if(表达式);,否则即视为if(表达式)在进行判断真假之后,如果为真,执行了空语句(;)。?判断是否相等使用==,使用=为赋值操作。举例:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

#include<stdio.h>
int main()
{
	int a = 20;
	if (a = 1)
		printf("%d", a);
	return 0;
}

结果:打印1? ? ? ? ?分析,if(a=1)中不是判断a和1相等,而是将a赋值成为了1。? ? ? ? ?

switch语句? ?:实现多分支

?switch(表达式)? {? ? ?case 1:语句1;break;? ?case 2:语句2;break;? ?---? ??default:默认语句块;? ? ? ?}

表达式的值没有一个可以匹配case语句,执行default。?

? ?switch语句的break作用:使程序跳出switch,一个break只能作用于包含这个break的switc内

#include<stdio.h>
int main()
{
	int n = 1, m = 2;
	switch (n)
	{
	case 1:n++;switch (m)
	{
	case 1:m--; break;
	case 2:m = 4;
	case 3:m++; break;
	}
	default:n++;
	}
	printf("m=%d,n=%d", m, n);
	return 0;
}

结果:m=5,n=3? ?分析如下? 二、? 循环结构程序设计 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?while语句

?while(表达式)? ? ? 语句;表达式为真时,执行语句,为假时结束。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?代码功能:一到一百累加求和

#include<stdio.h>
int main()
{
	int i = 1;
	int sum = 0;
	while (i <= 100)
	{
		sum = sum + i;//sum累加求和 1+2+3+...+100
		i++;
	}
	printf("%d", sum);
	return 0;
}

?do-while:先执行do里面的循环体,后进行while循环的判断

#include<stdio.h>
int main()
{
	int i = 0;
	int sum = 0;
	do
	{
		sum = sum + i;//sum累加求和 1+2+3+...+100
		i++;
	} while (i <= 100);
	printf("%d", sum);
	return 0;
}

?for循环

#include<stdio.h>
int main()
{
	int i = 0;
	int sum = 0;
	for (i = 0; i <= 100; i++)
	{
		sum = sum + i;//sum累加求和 1+2+3+...+100
	}
	printf("%d", sum);
	return 0;
}

?注意;赋值还是判断

?循环里面的break和continue

?break:循环体内结束本层循环。switch内跳出本层switch语句? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

continue:只能出现在循环体内 ,作用是提前结束本轮循环,放置在continue后面的语句被跳过,返回到循环控制部分。?

?练习:1,求n的阶乘

#include <stdio.h>
int main()
{
	int i = 1;
	int n = 0;
	int ans = 1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
		 ans = ans * i;
	printf("%d", ans);
	return 0;
}

?2.冒泡排序:对于一组杂乱无章的数据进行排序

#include <stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,3,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0; int j = 0; 
	for (i = 0; i < sz - 1; i++)
	{
		int flag = 1;
		for (j = 0; j < sz - 1 - i; j++)
		{
			int t = 0;
			if (arr[j] > arr[j + 1])
			{
				t = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = t;
				flag = 0;
			}
		}
		if (flag == 1)
			break;
	}
	for (i = 0; i < sz; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}

3.二分查找:对一排列有序的数组进行数据的查找

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int n = 0;
	printf("输入找的数字");
	scanf("%d", &n);
	int left = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int right = sz - 1;
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (arr[mid] == n)
		{
			printf("找到了,下标是%d", mid);
			break;
		}
		if (arr[mid] < n)
		{
			left = mid + 1;
		}
		if (arr[mid] > n)
		{
			right = mid - 1;
		}
	}
	if (left > right)
		printf("找不到");
	return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 15:54:00  更:2021-08-06 15:54:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:54:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计