C语言学习——黑马程序员(更)

C语言学习——黑马程序员(更)

编辑时间:2023/9/17
来源:b站黑马程序员、菜鸟教程官网

1.1.c语言介绍

1.定义

高级语言、面向过程、抽象化的通用设计语言、广泛用于底层开发。

  1. 优点:代码量小、执行速度快、功能强大、编程自由。
  2. 缺点:写代码实现周期长、可移植性较差、过于自由经验不足易出错、对平台依赖较多。

2.关键字(32字)

保留字不能作为常量、变量名或其他标识符名称。

auto 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 定义常量,如果一个变量被const定义,其值不能改变
continue 结束当前循环,开始下一个循环
default 开关语句中其他的分支,即默认
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
else 条件语句否定分支,与if连用
enum 声明枚举类型
extem 声明变量或函数是在其他文件或本文剪的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
goto 无条件跳转语句
if 条件语句
int 声明整数型变量或函数
long 声明长整型变量或返回值类型
register 声明寄存器变量
return 子程序返回语句(可带或者不带参数)
short 声明短整型变量或函数
signed 声明有符号类型变量或函数
sizeof 计算数据类型或变量长度(即所占字节数)
static 声明静态变量
struct 声明结构体类型
switch 	用于开关语句
typedef 用以给数据类型取别名
unsigned 声明无符号类型变量或函数
union 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

3. 控制语句(9种)

if()~else~
for()~
while()~
do~while()
continue
break
switch
goto

4. 运算符(34种)

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 杂项运算符
算术运算符
+	把两个操作数相加
-	从第一个操作数中减去第二个操作数
*	把两个操作数相乘
/	分子除以分母
%	取模运算符,整除后的余数
++	自增运算符,整数值增加 1
--	自减运算符,整数值减少 1
关系运算符
==	检查两个操作数的值是否相等,如果相等则条件为真
!=	检查两个操作数的值是否相等,如果不相等则条件为真
>	检查左操作数的值是否大于右操作数的值,如果是则条件为     真
<	检查左操作数的值是否小于右操作数的值,如果是则条件为     真
>=	检查左操作数的值是否大于或等于右操作数的值,如果是则     条件为真
<=	检查左操作数的值是否小于或等于右操作数的值,如果是则     条件为真
逻辑运算符
&&	称为逻辑与运算符。如果两个操作数都非零,则条件为真
||	称为逻辑或运算符。如果两个操作数中有任意一个非零,则     条件为真。
!	称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件     为真则逻辑非运算符将使其为假。

位运算符
在这里插入图片描述

赋值运算
在这里插入图片描述

杂项运算

在这里插入图片描述
运算优先级在这里插入图片描述

1.2.第一个c语言程序

软件:Visual Studio
1.新建项目-新建文件(选择c++但文件结尾以c结尾)
2.不调试执行-将文件exe拖入cmd回车
创建第一个C语言
在这里插入图片描述

//单行注释
/*多行注释*/
/*
# 导入一个文件
stdio.h 是一个标准库 标准输入输出库
i input
o output
.h 头文件
<> 表示导入系统文件
"" 表示导入自定义文件
int 数据类型 整型 如果出现在函数中表示函数的返回值
main 表示程序主函数 程序有且只有一个主函数

*/
#include <stdio.h>
int main(){
/*函数体 代码体 程序体*/
	printf("hello!");
	//printf stdio.h中系提供的函数 表示标准输出设别上输出字符串 
	return 0;
	//return 如果出现在其他函数表示函数结束
	//return 如果出现在main函数表示程序结束
	//0表示函数的返回值 要和函数返回值类型对应
	
}

运行结果:
在这里插入图片描述

1.3.window中gcc编译程序

在这里插入图片描述

1.4system函数

快捷键:ctrl+j 提示c语言代码
代码案例:

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
	int value;
	//功能:在已运行程序运行另外的程序
	//参数:外部可执行程序的名字
	//cmd命令,calc 计算器 notepad记事本 mspaint 画图板
	//返回值成功 失败任意值
	value=system("calcccc");
	printf("%d\n", value);
	return 0;
}

案例2

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
	int value;
	//正确返回0错误返回其他任意值
	value=system("calcccc");
	printf("%d\n", value);
	return 0;
}

在cmd运行窗口中输入help显示命令内容

有关某个命令的详细信息,请键入 HELP 命令名
ASSOC          显示或修改文件扩展名关联。
ATTRIB         显示或更改文件属性。
BREAK          设置或清除扩展式 CTRL+C 检查。
BCDEDIT        设置启动数据库中的属性以控制启动加载。
CACLS          显示或修改文件的访问控制列表(ACL)。
CALL           从另一个批处理程序调用这一个。
CD             显示当前目录的名称或将其更改。
CHCP           显示或设置活动代码页数。
CHDIR          显示当前目录的名称或将其更改。
CHKDSK         检查磁盘并显示状态报告。
CHKNTFS        显示或修改启动时间磁盘检查。
CLS            清除屏幕。
CMD            打开另一个 Windows 命令解释程序窗口。
COLOR          设置默认控制台前景和背景颜色。
COMP           比较两个或两套文件的内容。
COMPACT        显示或更改 NTFS 分区上文件的压缩。
CONVERT        将 FAT 卷转换成 NTFS。你不能转换
               当前驱动器。
COPY           将至少一个文件复制到另一个位置。
DATE           显示或设置日期。
DEL            删除至少一个文件。
DIR            显示一个目录中的文件和子目录。
DISKPART       显示或配置磁盘分区属性。
DOSKEY         编辑命令行、撤回 Windows 命令并
               创建宏。
DRIVERQUERY    显示当前设备驱动程序状态和属性。
ECHO           显示消息,或将命令回显打开或关闭。
ENDLOCAL       结束批文件中环境更改的本地化。
ERASE          删除一个或多个文件。
EXIT           退出 CMD.EXE 程序(命令解释程序)。
FC             比较两个文件或两个文件集并显示
               它们之间的不同。
FIND           在一个或多个文件中搜索一个文本字符串。
FINDSTR        在多个文件中搜索字符串。
FOR            为一组文件中的每个文件运行一个指定的命令。
FORMAT         格式化磁盘,以便用于 Windows。
FSUTIL         显示或配置文件系统属性。
FTYPE          显示或修改在文件扩展名关联中使用的文件
               类型。
GOTO           将 Windows 命令解释程序定向到批处理程序
               中某个带标签的行。
GPRESULT       显示计算机或用户的组策略信息。
GRAFTABL       使 Windows 在图形模式下显示扩展
               字符集。
HELP           提供 Windows 命令的帮助信息。
ICACLS         显示、修改、备份或还原文件和
               目录的 ACL。
IF             在批处理程序中执行有条件的处理操作。
LABEL          创建、更改或删除磁盘的卷标。
MD             创建一个目录。
MKDIR          创建一个目录。
MKLINK         创建符号链接和硬链接
MODE           配置系统设备。
MORE           逐屏显示输出。
MOVE           将一个或多个文件从一个目录移动到另一个
               目录。
OPENFILES      显示远程用户为了文件共享而打开的文件。
PATH           为可执行文件显示或设置搜索路径。
PAUSE          暂停批处理文件的处理并显示消息。
POPD           还原通过 PUSHD 保存的当前目录的上一个
               值。
PRINT          打印一个文本文件。
PROMPT         更改 Windows 命令提示。
PUSHD          保存当前目录,然后对其进行更改。
RD             删除目录。
RECOVER        从损坏的或有缺陷的磁盘中恢复可读信息。
REM            记录批处理文件或 CONFIG.SYS 中的注释(批注)。
REN            重命名文件。
RENAME         重命名文件。
REPLACE        替换文件。
RMDIR          删除目录。
ROBOCOPY       复制文件和目录树的高级实用工具
SET            显示、设置或删除 Windows 环境变量。
SETLOCAL       开始本地化批处理文件中的环境更改。
SC             显示或配置服务(后台进程)。
SCHTASKS       安排在一台计算机上运行命令和程序。
SHIFT          调整批处理文件中可替换参数的位置。
SHUTDOWN       允许通过本地或远程方式正确关闭计算机。
SORT           对输入排序。
START          启动单独的窗口以运行指定的程序或命令。
SUBST          将路径与驱动器号关联。
SYSTEMINFO     显示计算机的特定属性和配置。
TASKLIST       显示包括服务在内的所有当前运行的任务。
TASKKILL       中止或停止正在运行的进程或应用程序。
TIME           显示或设置系统时间。
TITLE          设置 CMD.EXE 会话的窗口标题。
TREE           以图形方式显示驱动程序或路径的目录
               结构。
TYPE           显示文本文件的内容。
VER            显示 Windows 的版本。
VERIFY         告诉 Windows 是否进行验证,以确保文件
               正确写入磁盘。
VOL            显示磁盘卷标和序列号。
XCOPY          复制文件和目录树。
WMIC           在交互式命令 shell 中显示 WMI 信息。

1.5 C语言编译程序

C语言程序编译成可执行程序的4步

  1. 预处理:宏定义展开,头文件展开,条件编译等,同时将代码中的注释删除,这里并不会检查语法
  2. 编译:检查语法,将预处理文件编译成汇编文件
  3. 汇编:将汇编文件生成目标文件(二进制文件)
  4. 链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
选项代码
预处理gcc -E hello.c -o hello.i
编译gcc -S hello.i -o hello.s
汇编gcc -c hello.s -o hello.o
链接gcc hello.o -o hello.exe
选项含义
-E只进行预处理
-S只进行预处理和编译
-s只进行预处理、编译、汇编
-o file指定生成的输出文件名为file
文件后缀含义
.cC语言文件
.i预处理后的c语言文件
.s编译后的汇编文件
.o编译后的目标文件

在这里插入图片描述
在这里插入图片描述

常见代码问题:
1.编辑时异常
2.编译时异常
3.运行时异常

1.6cpu介绍和程序链接库

1)64位和32位的区别

寄存器是cpu内部最基本的存储单元。cpu对外是通过总线(地址、控制、数据)来和外部设备交互的,总线的宽度是8为,同时cpu的寄存器也是8位那么这个cpu就是为8位的cpu 如果总线是32位,寄存器也是32位,么这个cpu就是为32位的cpu 有一种cpu的内部寄存器为32位,但总线16位,准为32位cpu 所有的64位菜谱兼容32位的指令,32位要兼容16位的指令,所以在64位的cpu上是可以识别32位的指令。 在64位的cpu架构上运行了64位的软件操作系统,那么这个操作系统是64位 在64位的cpu构架上运行了32位操作系统,那么这个系统是32位 64位的软件不能运行在32位的CPU上

8位16位32位64位
AAXEAXRAX
BBXEBXRBX
CCXECXRCX
DDXEDXRDX

3)寄存器、缓存、内存三者关系
按与CPU的远近来分,离得近的是寄存器,然后缓存(cpu缓存),最后内存
cpu计算时,先把要用的数据从硬盘读到内存,然后即将要用的数据读到寄存器,于是cpu<——>寄存器<——>内存,这就是他们之间的信息交换。

那为什么有缓存呢?因为如果经常操作内存中的同一地址的数据,就会影响速度,于是就在寄存器和内存之间设置一个缓存。

因为从缓存提取的速度高于内存,当然缓存的价格肯定远高于内存,不然的话,机器里就没有内存的存在。

由此可见cpu<——>寄存器<——>内存

1.7汇编语言和程序测试

汇编语言

选项含义
mov移动
add添加
push压栈
pop出栈
call调用

eax 32位寄存器
简单加法计算器:

asm 
  mov a,10
  mov b,20
  add eax,a
  mov eax,b
  mov c,eax

断点和单步测试:

选项操作
断点在选中行单击或者按F9
测试程序在“调试测试”中选择“开始调试”或按“F5”
逐语句执行F11
逐过程执行F10
跳出过程shift+F11
停止调试SHIFT+f5

2.1 变量和常量

1.关键字:

数据类型关键字12个char short int long float double unsigned signed struct union enum void
控制语句关键字12个if else switch case default for do while break continue goto return
存储类关键字5个auto extern register static const
其他关键字3个sizeof typeof volaite

在这里插入图片描述
2.常量
常量:在程序运行过程中,其值不能改变的量,成为常量
定义常量的方式:

  1. const 数据类型 常量名=值(不安全)
  2. 宏定义常量:#define 常量名 值

3.变量
变量:在程序运行中,其值可以发生改变的量
定义格式:
数据类型 变量=值
4.标识符

  1. 不能使用系统关键字
  2. 允许字母数字下划线
  3. 不允许数字开头
  4. 标识符区分大小写
  5. 见名知义

2.2整形的定义和输出

数据类型 标识符 = 值
无符号 unsigned
有符号 signed(可以省略)
注意 :打印格式要求有符号数还是无符号数

定义八进制以0开头
定义十六进制以0x开头

打印格式含义
%d输出一个有符号的10进制int类型
%o输出8进制的int类型
%x输出16进制的int类型,字母以小写输出
%X输出16进制的int类型,字母以大写输出
%u输出一个10进制的无符号数

2.3整形的输入

//#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
	int a ;
	//通过键盘输入赋值
	//&运算符,表示取地址运算符
	printf("Please input number");
	scanf("%d", &a);
	printf("%d\n", &a);
	return 0;

}

在这里插入图片描述

2.4整形的大小和范围

数据类型占用空间
short 短整型2字节
int 整型4字节
long 长整型windows4字节 linux4字节(32位) 8字节(64位)
long long 长长整型8字节

注意:

  • 需要注意的是,整型数据在内存中占用的字节数与所选择的操作系统有关,虽然C语言标准中没有明确规定整型数据的长度,但long类型整数长度不能短于int类型,short类型整数长度不能长于int类型
  • 当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化,但一个大的数据类型转为一个小的数据类型时那么就会丢失高位

sizeof 关键字

  • sizeof 不是函数,所以不需要包含任何头文件,它的功能是一个计算一个数据类型的大小,单位为字节
  • sizeof 的返回值为size_t
  • size_t类型在32位操作系统下的是unsigned int,是一个无符号的整数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main()
{
	//整形变量
	int a =10;
	//短整型变量
	short b = 20;
	// 长整型变量
	long c = 30;
	// 长长整形
	long long d = 40;
	//通过键盘输入赋值
	//&运算符,表示取地址运算符
	

		//占位符 输出整型
	printf("%d\n", a);
	//占位符 输出短整型
	printf("%hd\n", b);
	//占位符 输出长整型
	printf("%ld\n", c);
	//占位符 输出长长整型
	printf("%lld\n", d);

	//sizeof计算数据类型在内存中占的字节大小
	//sizeof(数据类型)sizeof(变量名)sizeof 变量名
	unsigned int len = sizeof(a);
	printf("整形:%d\n", len);



	return EXIT_SUCCESS;

}

输出内容
在这里插入图片描述
注意:整形数据在内存中占的字节数与所选择的操作系统有关,虽然C语言没有明确规定整形数据的长度,但long类型整数的长度不能短于int类型,short类型长度不能长于int类型,当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给小的类型,那么就看丢失高位。

2.5字符型

字符型char
字符型变量用于存储一个单一个字符,在c语言中用插入表示,其中每个字符变量都会占用1个字节,在给字符型变量赋值时,需要用' '贝字符括起来。
字符变量实际上并不是把该字符本身放在变量的内存单元去,而是将该字符对应ASCII编码放到变量的存储单元中,char 的本质就是一个1字节大小的整形。

在这里插入图片描述

2.6浮点型

浮点型 float double
浮点型数据主要分为3部分:符号位+数值位
实型变量也称为浮点型变量,浮点型变量是用来存储小数数值。在c语言中,浮点型变量分为两种:单精度浮点型(float)双精度(double),但是double类型的变量所表示的浮点数比float更精确。

由于浮点型变量分为两种是由有限的存储单元组成的,因此只能提供有限的有效数字。在有效位以外的数字被舍去,这样可能会产生一点误差。

不以f结尾的的常量是double类型,以f结尾(3.14f)是float类型

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main(){
	
		int a = 10;
		int b = 3.14;
		//占位符 表示输出一个变量对应的内存地址编号(无符号十六进制)
		printf("%p\n", &a);
		printf("%p\n", &b);
		//大小端对齐
		getchar();

		return 0;		
	
	
}
	

浮点型科学计数法表示

#include<stdio.h>
int main(void) {
	//科学计数法
	float a = 0.123456;
	printf("%e/n", a);
	return 0;

}

2.7二进制和十进制的转换

进制就是进位值,对于任何一种x进制就表示某一位置上的数运算时是逢x进一位。例如十六进制即逢十六进一位。
十进制转成二进制:除二反序取余法
在这里插入图片描述
二进制转为十进制:权值法
在这里插入图片描述

2.8八进制、十六进制和十进制的转换

十进制转成八进制:除八反序取余法
在这里插入图片描述
八进制转为十进制:权值法
在这里插入图片描述
十进制转十六进制:除十六反序取余法
在这里插入图片描述
十六进制转十进制:权值法
在这里插入图片描述

2.9二进制和八进制、十六进制的转换

在这里插入图片描述

2.10进制术语和小数存储方式

在这里插入图片描述
术语:

在这里插入图片描述
注意:汉字在windows为双字节,在linux为三字节

2.11数据存储方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.12有符号数和无符号数的取值范围

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.13数据溢出

的那个冲啊过一个数据类型能够存大概最大范围,数值会溢出
有符号位最高位溢出的区别:符号位溢出会导致数的正负发改变,但最高位的溢出会导致最高位丢失

数据类型占用空间取值范围
char1字节-128~127
unsigned char1字节0~255

3.1类型限定

限定符含义例子
extern声明一个变量,extern声明的变量没有建立存储空间extern int a;
const定义一个常量,常量的值不能更改const int a=10;
Volatile定义一防止编译优化代码
register定义寄存器变量,提高效率,register是建议型命令,而不是命令型的指令,如果cpu有空闲的寄存器,那么register就生效,如果没有空闲的寄存器,那么register无效

3.2格式化输出输入

字符串常量

  • 字符串是内存中一段连续的char空间,以‘\0’(数字0)结尾

  • 字符串常量是由双引号括起来的字符序列,如"china"
    printf(“hello”)

  • 字符串常量和字符常量不同
    每个字符串的结尾,编译器会自动添加一个结束标志位’\0’,即“a”包括两个字符’a’和‘\0’

printf函数和putchar函数
printf函数是输出一个字符串,putchar输出一个char

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3运算符上

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:

3.4运算符下

在这里插入图片描述

3.5运算符优先级别

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6类型转换

在这里插入图片描述

3.7if语句

在这里插入图片描述
在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main() {
	int score;
	scanf("%d", &score);
	if (score > 700) {
		printf(">700 scores");
	}
	else if (score > 600) {
		printf(">600 scores");
	}
	else {
		printf("<600 scores");
	}
	return EXIT_SUCCESS;
}

3.8三只小猪称重

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main() {
	int a,b,c;
	scanf("%d%d%d", &a,&b,&c);
	if (a > b) {
		if (a > c)
			printf("maxweight=a");
		else
			printf("maxweight=c");
	}
	else if (b>c) {
		if (a > b)
			printf("maxweight=a");
		else
			printf("maxweight=b");
	}
	else {
		printf("maxweight=c");
	}
	return EXIT_SUCCESS;
}

3.9三目运算符

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main() {
	int a,b;
	a = 10;
	b = 20;
	printf("%d\n", a > b ? a : b);
	return EXIT_SUCCESS;
}

宏定义表达式写法

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define MATH(a,b) (a)>(b)?(a):(b)
int main() {
	int a, b;
	a = 10;
	b = 20;

   printf("%d\n", MATH(a,b));
   return 0;
}


3.10Switch语句

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define MATH(a,b) (a)>(b)?(a):(b)
int main() {
	//成绩标准
	int score;
	scanf("%d", &score);
	switch (score / 10) {
	case 10:
		printf("MAX");
		break;
	case 9:
	case 8:
		printf("A");
		break;
	case 7:
		printf("B");
		break;
	case 6:
		printf("C\n");
	case 5:
		printf("attention!!!");
		break;
	default:
		printf("sorry!!!");
		break;
	}
	return EXIT_SUCCESS;
}


3.11while语句

在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define MATH(a,b) (a)>(b)?(a):(b)
int main(void) {
	//逢7过
	int i=1;
	while (i < 100) {
		if (i / 10 == 7 || i % 7 == 0 || i % 10 == 7)
		{
			printf("寡\n");
		}
		else
		{
			printf("%d\n",i);
		}
		i++;
	}
	return 0;
}


3.12dowhile

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define MATH(a,b) (a)>(b)?(a):(b)
int main(void) {
	//水仙花数
	int i = 100;
	do
	{
		int a = i % 10;
		int b = i / 10 % 10;
		int c = i / 100;
		//立方pow()
		if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
		{
			printf("100-999的水仙花数%d\n", i);
		}
		i++;
	} while (i <= 999);
	return 0;
}


3.13for

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#pragma warning(disable:4996)
#include<Windows.h>
int main()
{
	//while(1)等于for(::)
	//猜数字
	//产生随机数1.导入头文件2.添加随机数种子3.获取随机数
	srand((unsigned int)time(NULL));//每次随机数都不一样
	int value = rand() % 100;//0~9
	int num;
	//for (int i = 0; i < 10; i++) 
	for (;;) {
		printf("输入数字\n");
		scanf("%d", &num);
		if (value > num) {
			printf("your number is small");
		}
		else if (value < num) {
			printf("your number is big");
		}
		else {
			printf("you are right!!!");
			break;
		}

	}
	return EXIT_SUCCESS;
}

3.14嵌套循环

4.1跳转语句

4.2数组定义和使用

4.3十只小猪称重

4.4数组逆置

4.5冒泡排序

4.6二维数组

4.7学生成绩

4.8多维数组

4.9字符数组和字符串

4.10字符串获取

4.11 字符串打印

4.12 字符串长度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶茶精Gaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值