2019/8/23 C语言回顾4

一、for循环
一般形式
for(表达式1;表达式2;表达式3)
{
    c语句块;
}
 
表达式1:通常是一个赋值表达式
表达式2:条件或者逻辑表达式
表达式3:能够该改变表达式2结果的语句
 
1 ----> 2 ----> c ---->3 ---->2
 
注意:表达式1只会执行一次
 
int i;
for(i = 0;i < 5;i++)
 
continue:跳过当次循环,直接执行下一次循环
 
完全数:如6 = 1 + 2 + 3
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,j;
int sum =0;
for(i=1;i<=1000;i++)
{
sum = 0;//每次要初始化
for(j=1;j<i;j++)                    //优化 j<i/2
{
if(i%j==0)
{
sum+=j;
}
}
 
if(sum == i)//比较要在j判断完成后
{
printf("%d ",i);
}
 
}
return 0;
}
 
二、goto构成死循环
#include <stdio.h>
int main(int argc, const char *argv[])
{
loop1://死循环
printf("hello");
goto loop1;
return 0;
}
 
for(; ;)死循环=while(1)
 
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
float a1,a2;
int b;
char ch;
scanf("%f%d%c%f",&a1,&b,&ch,&a2);
printf("%c %d %.2f %.2f\n",ch,b,a1,a2);
return 0;
}
键盘输入时要这样:2.12 88c 3.1(即88要与c放在一起)
 
数组的初始化int a [ ] 是错误的,没有确定元素的个数,空间无法申请;
 
三、数组
一些数据的组合
 
1、数组的类型为构造类型
2、通过下标来判断是一维数组还是多维数组
3、数组中元素的类型必须保持一致
4、在内存空间中是连续分布的
 
 
【1】一维数组
一般形式
数据类型 数组名[数组内元素个数];
    |
数组内存放的数据的数据类型
 
int a[3];
数组的初始化
int a[3] = {10,20,30};
完全初始化
int a[3] = {10,20,30};
int a[] = {10,20,30};
 
不完全初始化
int a[3] = {1};
当数组不完全初始化时,未初始化的元素默认为0
 
不初始化
int a[3];
当数组处于栈区空间时,其内部为随机值
当数组处于全局区时,其默认值为0
 
如何引用数组内元素
通过 数组名[下标] 来引用数组内元素
注意:下标从0开始
a[0] a[1] a[2]
 
如果想要打印数组内元素,需要用for循环遍历数组
 
数组越界
1、往数组后扩展空间,可能是随机值,也可能是其他数据
2、可能会导致段错误
Segmentation fault (core dumped)
 

猜你喜欢

转载自www.cnblogs.com/epll/p/11397565.html