在C语言学习中整理的笔记⑤
在C语言的学习中,了解和掌握循环结构是至关重要的,因为它们是程序中控制流程的基础。do-while循环是其中一种,它的语法形式是 `do { 循环体 } while(条件);`。与while循环不同,do-while循环会先执行一次循环体,然后再检查条件,这意味着即使条件为假,do-while循环也会至少执行一次。 接着,我们讨论了三种循环——while、for和do-while之间的区别。while循环适用于那些不依赖于已知循环次数的条件,for循环适用于知道循环次数的情况,而do-while循环则更注重于检查循环体内的逻辑,如果满足条件,则继续执行。尽管它们在效率上没有显著差异,但根据具体需求,这三种循环可以相互替换。 在循环控制语句中,`continue`用于提前结束当前循环迭代,跳过剩余代码并进入下一次循环。`break`则用于完全终止循环,使程序继续执行循环后面的代码。而在函数内部,`return`语句不仅结束函数,如果在main函数中使用,还会结束整个程序的运行。 数组是C语言中存储多个同类型数据的重要方式。一维数组的定义如 `int arr[100];`,表示名为arr的数组,包含100个整型元素。数组元素通过索引访问,索引从0开始,直到数组大小减1。数组赋值需要逐个元素进行,例如 `arr[0] = 10;`。初始化数组可以分为完全初始化、部分初始化和默认初始化。在完全初始化中,初始化数据的数量必须与数组元素数量相等;部分初始化时,未指定的元素将自动设置为0;默认初始化时,数组大小由初始化数据的数量决定。 遍历一维数组通常使用for循环,例如 `for(i = 0; i < 10; i++) { a[i] = 10; printf("%d\n", a[i]); }`,循环变量i作为数组的索引。数组可以是任何类型的,如 `char a[10];`,`short b[20];`,`float c[30];` 和 `double d[3];`。 在实际编程中,一维数组的应用非常广泛。例如,你可以创建一个数组来存储10个整数并求和,如下所示: ```c #include <stdio.h> int main() { int a[10]; int i; int sum = 0; for(i = 0; i < 10; i++) { scanf("%d", &a[i]); sum += a[i]; } printf("sum = %d\n", sum); return 0; } ``` 或者,你可以使用数组来存储10个0到100的整数考试分数,并找出最高分和最低分: ```c #include <stdio.h> int main() { int a[10]; int i; int max = a[0], min = a[0]; for(i = 0; i < 10; i++) { do { printf("input a[%d]:\n", i); scanf("%d", &a[i]); } while(a[i] < 0 || a[i] > 100); } for(i = 1; i < 10; i++) { if(a[i] > max) max = a[i]; if(a[i] < min) min = a[i]; } printf("最高分: %d\n", max); printf("最低分: %d\n", min); return 0; } ``` 这样的例子展示了如何在实际问题中运用一维数组,处理输入验证、计算和存储数据。通过熟练掌握这些基础知识,你将能够编写更复杂、功能更丰富的C语言程序。