?本章分支结构的学习内容如下:
三、C语言中的分支与循环—switch语句(4)分支结构 完
本章循环结构的学习内容如下:
三、C语言中的分支与循环—break和continue语句(8)循环结构 完??
接下来我们开始for循环的学习,为什么有了while循环还要引入for循环呢?
for
循环:由于它将所有循环相关的元素(初始化、条件、更新)封装在一个语句中,因此通常更容易阅读和理解,特别是对于迭代过程。while
循环:可能需要在循环体外初始化变量,在循环体内更新变量。这可能使得跟踪循环的状态和控制变量更加困难。?我们一起来看看for循环是怎样工作的吧!
for
循环在C语言中是一种常用的循环控制结构,用于在已知循环次数的情况下重复执行一段代码。
for (初始化表达式; 循环条件表达式; 更新表达式) {
// 循环体
}
for
循环从1打印到10#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
printf("%d\n", i);
}
return 0;
}
如何安全地输入数组,见二、C语言数据类型与变量(scanf和printf (4)完)scanf的安全用法
数组长度计算
数组遍历,我们首先需要知道数组的长度,再用“数组名[数组下标]”这种方法取出每一个元素
例如 初始化数组int arr[] = { 1, 2, 3, 4, 5 }; 我们想打印第一个元素,数组下标从0开始,即可以执行语句
int arr[] = { 1, 2, 3, 4, 5 };
printf("%d",arr[0]);
那么C语言中计算数组的元素个数的常见用法是:
int length = sizeof(arr) / sizeof(arr[0]);
sizeof(arr)
:这部分计算整个数组 arr
在内存中占用的总字节数。
sizeof(arr[0])
:这部分计算数组中第一个元素的大小(字节数)。由于数组的所有元素都是同一类型,因此任何一个元素的大小都代表数组中每个元素的大小。
除法操作:将数组的总大小除以单个元素的大小,得到的结果就是数组中元素的数量。
arr是一个 int
类型的数组,每个 int
元素通常占用4个字节(这可能根据不同的系统和编译器而有所不同)。如果数组总共占用了40个字节,那么 sizeof(arr) / sizeof(arr[0])
就是 40 / 4
,结果是10,意味着这个数组有10个元素。
这种方法在计算静态数组(在编译时大小已知的数组)的长度时特别有用。但请注意,这种方法不适用于动态分配的数组(如使用 malloc
分配的数组)或指针,因为 sizeof
对于指针只会返回指针本身的大小,而不是它指向的内存区域的大小。动态数组我们以后再讨论。
遍历数组的代码如下:?
#include <stdio.h>
int main() {
int arr[] = { 1, 2, 3, 4, 5 };//初始化一个数组
int length = sizeof(arr) / sizeof(arr[0]);//整型变量length
for (int i = 0; i < length; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
我们看一下结果,数组元素被成功打印。?
计算1~100之间3的倍数的数字之和
#include <stdio.h>
int main()
{
int sum = 0;//初始化变量和
for (int i = 0; i <= 100; i++)
{
if (i % 3 == 0)
sum += i;//如果i是3的倍数,就把i加进和里面
}
printf("%d", sum);
return 0;
}
?结果如下:
//如果能直接产?3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
for(i=3; i<=100; i+=3)
{
sum += i;
}
printf("%d\n", sum);
return 0;
}