一维数组:数组名是一个指针常量,保存的是数组首元素的地址
对数组地址取值,等于数组首元素的地址
对数组名取地址,等于数组地址
二维数组名是第一个一维数组的地址
对二维数组名取地址是二维数组的地址
对二维数组名取值等于第一个一维数组的首元素的地址
对数组地址取值,
数组的特性:变量可控、连续存放、类型相同
数组可以是任意类型,格式智能用[] 不能用();不能用变量说明数组大小
C语言不允许对数组的大小进行动态说明
数组的说明语句必须在可执行语句之前
#include<stdio.h> //输入五个数并且输出,计算所有数的和
int main()
{
int i,m[5],sum=0;
for(i=0;i<5;i++)
{
scanf("%d",&m[i]);
sum +=m[i];
printf("**%d\n",m[i]);
}
printf("%d\n",sum);
}
计算平均值,输出比平均值高的数
#include<stdio.h>
#define N 4
int main()
{
int a[N],sum=0;
float avg;
for(int i=0;i<N;++i)
{
scanf("%d",&a[i]);
sum+=a[i];
}
avg=1.0*sum/N;
printf("avg=%f\n",avg);
for(int j=0;j<N;j++)
{
if(a[j]>avg)
printf("%d",a[j]);
}
return 0;
}
给定的数字,从小到大排序
#include<stdio.h>
#define N 10
int main()
{
int s,a[10]={78,56,38,99,81,86,39,100,49,78};
for(int i=0;i<9;i++)
{
s=i;
for(int j=i+1;j<10;j++)
if(a[s]>a[j])
s=j;
if(s!=i)
{
int tmp=a[s];
a[s]=a[i];
a[i]=tmp;
}
}
for(int i=0;i<10;i++)
printf("%d\n",a[i]);
}
break:在switch中结束case子句,跳出switch
在循环中,结束当前循环过程,跳出当前循环指到下一条语句处
continue:只能在循环中使用
仅跳过当前这一次循环
对于for语句,将控制转到执行增量和条件测试部分
对于while和do-while语句,将控制转到条件测试部分
例:输入十个数,统计其中正数的个数及平均值
#include<stdio.h>
int main()
{
int i,count=0,x,sum=0;
for(i=1;i<=10;i++)
{
printf("输入10个数字:");
scanf("%d",&x);
if(x<=0)
continue;
count++;
sum+=x;
}
if(count)
printf("正整数个数:%d,平均数:%.2f",count,1.0*sum/count);
else printf("正整数个数:0,平均数:0");
}