C语言学习笔记(一)-简单算法和数组

**写在前面:**本系列内容均为自学内容,旨在补一下C语言知识,以便更好的学习STM32单片机,笔者没有系统的看过相关教学视频,所以不会有太多的理论解释,并且可能会存在很多问题,如果有大佬路过发现了,还望帮忙指正,感谢各位。

学习目标

1、实现输入和输出;
2、进行简单的加减乘除操作(任选其一即可);
3、尝试输出二维数组。
使用的软件为《Visual Studio 2022》和《Code:Blocks》

一、输入和输出

先看一下C语言中的几种基本的数据类型,这里只列举4中,其他等后面用到的时候在看:
表1-1:

数据类型长度(bit)范围
char(字符型)8ASCII字符
int(整型)16-32768~32767
float(单精度型)32约精确到6位数
double(双精度型)64约精确到12位数

上述表格中我们使用的是int类型的;
在C语言中输出函数位printf();输入函数位scanf();,此外在使用输出输入函数时还需要注意格式,这是就要用到格式字符:
表1-2:

格式字符用法
%d十进制整型输出
%ld十进制长整型输出
%o以八进制数形式输出
%x以十六进制数形式输出
%u以十进制unsigned(无符号)型输出
%c输出一个字符
%s输出一个字符串
%f输出一个实数,以小数形式输出,默认保留小数点后6位
%.100f保留小数点后100位
%e以指数形式输出
%g根据大小自动选择f格式或者e格式,且不输出0

以上表格来自网络,笔者只使用了%d类型,其他并未使用验证;
看一下程序:

#include "stdio.h"  //c语言库文件

int a;	//定义一个整型变量

int main()
{
	printf("input there data:\n");  //输出一段英文
	scanf("%d",&a);                 //手动输入一个整型数字
	//scanf_s("%d",&a);             //vs2022软件使用这个函数输入
	printf("%d", a);                //将输入的数字显示在屏幕上
}

上述程序需要注意的是,软件如果使用VS2022,那么输入函数要使用scanf_s(),否则可能没办法编译通过,程序中“\n”表示后面的内容在下一行显示,下面是正确操作后的最终界面,使用的软件是:《Code:Blocks》:
图1-1:
在这里插入图片描述
我们主要看前三行:第一行是程序中的第一个输出函数所输出的内容,第二行的1是手动输入的数字,输入完成后按下回车键就会显示第三行的1,这是程序中第二个输出函数输出的内容,第四行不用管,第五行是说,按下任意键退出这个界面,以结束程序的运行;

二、简单的运算

在这个目标中我们要完成以下计算:1×2×3×4×5,直接看程序:

#include "stdio.h"  //包含c语言库文件

int b=1 ,c;  //定义变量,并将其中一个赋值

int main()
{
//这个for循环就是为了计算1*2*3*4*5,先让1*2,然后用得出的数据×3,再用相同的方法与4和5相乘,最后得到结果
	for(c = 2; c < 6; c++)
	{
		b = b * c;
	}
	printf("%d", b);
}

这个就不放运算结果的截图了,这个运算最后结果为120;

三、尝试输出二维数组

先看一下数组:a[8]={1,2,3,4,5,6,7,8},其中a[ ]表示数组,中括号中的8表示有8个成员,等号后面的大括号里的数字就是这8个成员,当然这是个一维数组;二维数组与之类似:b[2][2]={{1,2},{3,4}},其中b[2][2]表示二维数组有两行两列,前面是行,后面是列,后面大括号中,{1,2}表示第一行的数据是1和2,{3,4}表示第二行数据,二维数组定义时,行数可以不写,但列数一定要写;在数组中,位数从0开始数,比如上述数组a,其成员分别为a[0]~a[7],共8位;

#include "stdio.h"	//包含c语言库文件

int i;
int j,g[8] = { 4, 6, 8, 5, 2, 3, 10, 5 };
int s1=0, s2=0, ss[][2] = { {1,2},{3,4},{5,6},{7,8} };

int main()
{
//在一维数组中找出数字大于等于5的,并将位置标出来,位置从1开始数
	for (j = 0; j < 8; j++)
	{
		if (g[j] >= 5)
		{
			i = (j + 1);//用i表示位置,编号从1开始
			printf("%d,%d\n", g[j], i);
		}
	}
	printf("\n\n");	//将一维数组和二维数组的结果分开
//输出二维数组,并输出指定位数的数字
	for (s1 = 0; s1 < 4; s1++)//行数
	{
		for(s2 = 0; s2 < 2; s2++)//列数
			printf("%-4d", ss[s1][s2]);
		printf("\n");//每输出完一行就输出一次\n,防止输出成1行
	}
	printf("%d", ss[3][1]);

	printf("\n\n");
}

在上述程序中,我们同时操作了一维数组和二维数组,对一维数组,主要是取出其中大于等于5的数,并将其在数组中的位置输出出来,二维数组,主要是将上面定义的数组输出到屏幕上,并将其中一位数输出,下面看结果:
图1-2:
在这里插入图片描述
图片中,前5行是一维数组的计算结果,前面是数据,后面是位置,中间用逗号隔开;后5行中,6~9行是定义的二维数组,共4行2列,最后的8是输出的指定数据。
以上仅作笔记参考,不做教学,感谢观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值