通过使用while的死循环做菜单以及switch ,case的相关操作,实现输入(scanf),输出(printf),求出数组最大值以及冒泡排序

初识C语言(5)ifswitchwhile循环 文章目录1.什么是语句?2.分支语句(选择结构)2.1 if语句2.1.1 悬空else2.1.2 if书写形式的对比 1.什么是语句? C语句可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语 言有九种控制语句。 可分成以下三类: 条件判断语句也叫分支语句:if语句、switch语句; 循环执行语句:do while语句、while语句、for语句; 转向语句:break语句、got 阅读详情

1.首先先做我们的菜单子函数,从主函数中进行调用。

           注意:头文件下方使用了一个宏定义,为了方便我们修改输入输出的数的个数,且宏定义只做替换,在以后的代码中我都可以使用宏名(shu)去代替数值(5)。

2.在主函数中我们运用了while的死循环,为了方便菜单做完一项指令之后接着弹出,方便接下来的操作,还有switch,case的相关运用我会具体说明:

    2.1  死循环

            要知道我们需要循环的是菜单,但是也许做一个跳出死循环的指令,否则菜单会一直弹出,那样大家就只能ctrl  c了。

 

 这里我们做了一个判断,当你输出的序号为5的时候,就会跳出死循环。

   2.2  switch   case的运用

        这是我们定义的参数,其中a是我们的菜单选项,str为我们的数组名,这里我用五个数为例去实现我们的相关功能。

         2.2.1   scanf  和printf

    

我们需要循环输出输入 ,其中用到了一个for循环,每当运行完一个case指令别忘加break结束循环,否则会一直往下执行。运行结果如下:

 

2.2.2   数组最大值以及冒泡排序

.

由于我们以五个数为例,所以下标的时候从0开始4结束,通过循环判断输出最大值

 

冒泡排序我是通过两个for循环,从而数值进行交换

这里定义了一个变量w,用于替换数值,实现两个数值的相互交换。

注意:循环套循环的时候,外循环循环一次内循环循环多次

这里菜单中序号4我只做了排序,我们直接在序号2中输出就可以了。

最后一个小细节加一个换行符接可以了

 具体代码如下:


 

#include<stdio.h>
#define SHU 5
int menu()
{
	int a;
	printf("1-------输入SHU个数\n");
	printf("2-------输出SHU个数\n");
	printf("3-------数组最大值\n");
	printf("4-------冒泡排序由大到小排序\n");
	printf("5-------结束菜单\n");
	printf("请输入你选择的序号\n");
	scanf("%d",&a);
	return a;
}
int main(int argc, const char *argv[])
{
	int str[5]={0};
	int a;
	int b=0,w=0;
	int j,k,n=0,m=0;
	while(1)
	{
		a=menu();
	switch(a)
	{
	case 1:
		printf("请输入%d个数",SHU);
		for(b=0;b<SHU;b++)
		{
			scanf("%d",&str[b]);
		}break;
	case 2:
		printf("输出的数是:");
		for(b=0;b<SHU;b++)
		{
			printf("%d",str[b]);
		}break;
	case 3:
		for(j=0,k=str[0];j<SHU-1;j++)
		{
             
			if(k<str[j+1])
			{
				k=str[j+1];
			}
			
		}
			printf("数组的最的数是:%d",k);
	case 4:
			for(n=0;n<SHU-1;n++)
			{
				for(m=0;m<SHU-1-n;m++)
					if(str[m]<str[m+1])
					{
						w=str[m];
						str[m]=str[m+1];
						str[m+1]=w;
					}
			}
        

	}
	printf("\n");
	if(a==5)break;
	}
	return 0;
}

C语言使用while循环实现经典冒泡排序算法 使用C语言中while循环实现了一个优化的经典冒泡排序算法 阅读详情

相关推荐

C语言图书管理系统战:从链表应用到文件持久化完整项目

管理信息系统(MIS)是计算机科学中处理数据增删改查的基础应用,其核心在于数据结构设计与数据持久化。在C语言中,结构体用于组织复杂数据,链表实现动态内存管理,而文件I/O操作则负责数据的长期存储。这些技术共同构成了小型数据库系统的底层原理,具有极高的教学与践价值。本文聚焦于图书信息管理系统这一经典场景,通过手把手实现一个名为“c-pm001-books”的完整项目,深入讲解了如何综合运用结构体、指针、动态内存分配与二进制文件操作等核心知识点。项目采用模块化设计,涵盖从需求分析、数据结构定义到编译运行的完整

weixin_30420305的博客 417

第三章《数组循环》第3节:while循环

际开发过程中,常常需要计算机完成很多重复性的工作。以上代码的重复性非常强,如果array数组的长度是100,那么就需要重复写100次输出语句。为减少这种重复性的代码编写,Java以及其他高级编程语言都引入了循环结构。循环结构可以使虚拟机反复执行某些语句。在Java语言中,共有3中类型的循环,分别是while循环、do...while循环和for循环,本小节重点介绍while循环。在以上格式中,while关键字后面的小括号里有一个条件,专业上把这个条件称为“循环条件”。

穆哥学堂--Java学习园地 1072

C语言入门:从Hello World到理解计算机底层逻辑

编程语言是人与计算机沟通的桥梁,其中C语言作为中级语言,在高级语言的易用性和低级语言的硬件控制能力之间取得了平衡。其核心原理在于通过编译过程将源代码转换为机器指令,直接操作内存和硬件资源,这种特性赋予了它极高的执行效率和底层控制能力。在技术价值上,C语言培养了程序员严谨的计算机思维和内存管理意识,是理解操作系统、编译器、嵌入式系统等核心软件运作机制的基础。从应用场景看,它广泛应用于操作系统开发、嵌入式设备、高性能计算和系统工具等领域。本文以C语言入门为核心,通过分析Hello World程序,深入讲解编译过

weixin_34167819的博客 488

分支语句和循环语句①(if,switch,while

表达式语句,C程序设计语言的表达式语句由表达式加上分号“;”组成。例如: x=y+z;赋值语句;

CatShitK的博客 697

switch casewhile循环结构

switch case循环结构 switch case 结构:实现多选一 语法: switch (变量) { case 常量选择1: // 处理方式1; break; case 常量选择2: // 处理方式2; break; case 常量选择3: // 处理方式3; break; ...

qq_35159591的博客 3524

C语言战:从零构建控制台彩票与刮刮乐模拟器

随机数生成是计算机模拟不确定性的核心技术,其原理基于伪随机数算法,通过种子初始化产生看似随机的序列。这项技术在游戏开发、算法测试和模拟仿真中具有重要价值。在C语言中,标准库函数rand()和srand()是实现这一功能的基础工具。通过结合数组循环和条件判断等核心语法,可以构建出逻辑完整的应用,例如模拟彩票开奖刮刮乐游戏。这类项目不仅能巩固对变量、流程控制的理解,更能直观展示程序如何通过代码定义规则、处理用户交互并模拟随机事件。本文以C语言实现桌面端刮刮乐模拟器为例,详细拆解了奖池建模、随机数生成和用户交

weixin_33701617的博客 497

C语言图书管理系统战:从结构体到文件操作的项目开发指南

结构体是C语言中组织复杂数据的基础,它允许将不同类型的数据组合成自定义类型,为构建现世界体模型提供了可能。其原理是通过定义包含多个成员的数据类型,实现内存的连续分配,从而高效管理相关数据。在工程践中,结构体常与指针、动态内存管理结合,用于构建链表、树等动态数据结构,是开发信息管理系统的核心技术。文件操作则是实现数据持久化的关键,通过二进制读写将结构体数据保存到磁盘,确保程序重启后数据不丢失。这种技术组合在图书管理系统、学生成绩管理等单机版应用中极为常见,能够全面锻炼C语言的核心编程能力。本文以图书管理

ciya3282的博客 296

C 语言通讯录(终版)|新手踩坑全总结 + 最终可运行代码博客简介

本文介绍了C语言通讯录项目的终版实现,通过三篇系列文章完整闭环:基础版实现增删查改和文件存储,优化版修复核心bug并新增多条件查找等功能,终版进行代码规范重构和全bug修复。项目采用标准C语言分文件写法,包含头文件声明、功能实现和主程序入口。重点解决了输入异常处理、回车跳过修改、重名校验等常见问题,新增了自动保存、多条件查询等用功能。通过该项目,开发者可以掌握结构体使用、顺序表实现、文件操作等C语言核心技能,以及调试技巧和工程组织方式。

Luminousone的博客 218

C语言图书管理系统战:从链表操作到文件存储的完整实现

数据结构是计算机科学的核心基础,它定义了数据在内存中的组织方式。链表作为一种动态数据结构,通过指针将离散的内存块连接起来,实现了高效的增删操作。在C语言中,手动管理内存和深入理解指针是掌握链表的关键技术价值。这种底层控制能力使得开发者能够精确优化程序性能,并深刻理解数据在内存中的生命周期。文件存储则是数据持久化的常见场景,通过二进制文本格式将内存中的数据“冻结”到磁盘,实现程序状态的保存与恢复。本文以图书管理系统为例,详细解析了如何运用结构体定义图书信息,通过单向链表实现增删改查,并利用fwrite/fr

weixin_33985679的博客 403

Dev-C++ 5.11入门C语言:环境搭建、核心语法与项目

集成开发环境(IDE)是程序员编写、调试代码的核心工具,其原理在于将代码编辑器、编译器、调试器等组件集成,提供统一的开发界面。对于C语言初学者而言,选择一款轻量、易上手的IDE能有效降低学习门槛,将精力聚焦于语法和编程思维本身。Dev-C++ 5.11作为一款经典的轻量级IDE,具备开箱即用、配置简单、对中文友好等技术价值,尤其适合C语言入门教学与小型项目开发。本文将以Dev-C++ 5.11为践环境,详解C语言从环境搭建、基础语法到项目战的全流程,涵盖变量、控制结构、函数等核心概念,并演示如何利用调试

weixin_30410119的博客 578

从翁恺C语言课到战:核心语法、内存管理与项目应用全解析

编程语言的核心在于理解数据如何存储与操作,其原理基于变量、内存地址和函数调用栈等底层机制。掌握这些基础概念对于构建高性能、资源敏感的软件至关重要,尤其在系统编程、嵌入式开发和高性能计算领域。C语言作为贴近硬件的语言,是理解这些原理的绝佳工具,能够帮助开发者深入理解指针操作、动态内存管理(如malloc/free)和缓冲区行为。本文以浙大翁恺老师的经典C语言课程为主线,结合嵌入式开发、性能优化等战场景,系统梳理了从基础语法到指针、数组、函数及项目践的完整学习路径,并针对常见的内存泄漏、段错误等疑难问题提供

weixin_34290096的博客 471

计算机二级公共基础知识“保姆级”考点整理:看完这篇,拿不下分你来打我!

计算机二级公共基础知识考点速记:数据结构算法(时间复杂度、二叉树遍历)、程序设计基础(三大结构、面向对象)、软件工程(生命周期、测试方法)和数据库设计(E-R图、关系运算)。重点掌握二叉树性质、排序算法效率、软件测试目的等核心概念,通过理解加记忆即可轻松应对考试。建议考前重点突击名词解释,考试时合理分配时间,避免死磕难题。这些知识虽抽象但用,是计算机应用的底层逻辑,也是求职升学的重要加分项。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 1004

C语言数组循环输入

整型数组 int pre[26]; int i,i1=0; while(scanf("%d",&pre[i1])!=EOF) { i1++; } for(i=0;i<i1;i++){ printf("%d ",pre[i]); } 字符数组 char pre[26]; int i,i1=0; while((pre[i1]=getchar())!='\n') { ...

weixin_43901269的博客 1万+

课程设计心得_关于switch输入字母进入死循环问题

C语言课程设计时,采用了大量的switch,在后期找bug时,当输入字符类型时,如a,*,+之类的,程序进入了死循环,但又不想换成其他的(主要是懒,不想大量改动) void menu_windows() { int n; system("cls"); fflush(stdin); printf("\n"); printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"); p

且听风吟 3485

算法-使用while改进实现冒泡排序

冒泡排序作为八大排序算法之一,同时也是最简单的排序算法。 普通的排序实现可以通过双层for循环实现。 Random random=new Random(); int [] nums=new int[10]; for (int i = 0; i < nums.length; i++) { nums[i]=random.nextInt(30); } for (int i = 0; i < nums.length

Y9845125的博客 2028

学习笔记_关于switch在whlie中无限循环的解决办法_C语言

学习笔记_关于switch在whlie中无限循环 今天在作业的时候突然发现一个问题 #include&lt;stdio.h&gt; int main() { int a; while(1) { printf("请输入:"); scanf("%d",&amp;a); switch(a) { case 1:printf("你输入了1 \n\n");break; ...

BigClerver的博客 3721

2021-02-19

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录C#系列之基础语法一1.if语句2.swith语句3.for循环4.while循环前言二、例1.if语句2.swith循环3.for循环4.while循环总结 C#系列之基础语法一 1.if语句 2.swith语句 3.for循环 4.while循环 前言 这几种基本上是各种编程语言都会用到的几种处理逻辑,也就是写法上大同小异而已。 二、例 1.if语句 代码如下(示例): using System; namespace De

baidu_35255528的博客 187

while死循环问题-输入字符就会死循环

问题: 是否会遇到这样的问题,在while循环中 sanf("%d",&a);如果输入的不是数字,是字符就会进入死循环。 解决方案:都是缓冲区惹的祸,输入字符后,字符会一直留在缓冲区,一直读取的是那个字符,所有会一直循环下去。--------------------------------------------------- fflush(stdin); //清除缓冲,避免...

angzongqian6459的博客 3266
下一篇: 存储类型及内存空间的分类
m0_75157285
博客等级 码龄4年 1粉丝 5原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值