1.定义数组
类型 变量名称 [元素数量];
(元素数量必须是整数)
2.数组特点
用于放东西
所有元素具有相同的数据类型
一旦创建,不能改变大小
内存里,按顺序紧密排列
数组的每个单元就是数组类型的一个变量
使用数组时放在[]中的数字叫做下标或索引,下标时从0开始计数的(便于编译器执行)
范围:[0,数组的大小-1] (超出数组范围则崩溃)
#include <stdio.h>
int main()
{
int x;
double sum=0;
int cnt=0;
int num[100];
scanf("%d",&x);
while(x!=-1){
num[cnt]=x;
cnt++;
sum+=x;
scanf("%d",&x);
}
if(cnt>0)
{
int i;
double average=sum/cnt;//输出平均数
for(i=0;i<cnt;i++)
{
if(num[i]>average)
{
printf("%d",num[i]);//输出大于平均数的值
}
}
}
return 0;
}
但此程序限定了numberl的范围100;
const
特点:关键字const用来定义常量,如果一个变量被const修饰,那么它的值不能再被改变。
好处:编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得他成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也提高。
统计个数(10以内的数)->利用数组
#include <stdio.h>
int main()
{
const int num=10;//数组大小
int x;
int cnt[num];//定义数组
int i;
scanf("%d",&x);
for(i=0;i<num;i++)//初始化数组
{
cnt[i]=0;
}
while(x>-1)
{
if(x>=0&&x<=9)
{
cnt[x]++;//数组参与运算
}
scanf("%d",&x);
}
for(i=1;i<num;i++)
{
printf("%d:%d\n",i,cnt[i]);//遍历数组,输出
}
return 0;
}
在给定的数据中,如何找出某个数据是否存在?
数组集成初始化
int a[]={}
没有赋值的单元会自动补零
数组的大小
sizeof给出整个数据所占据的内容的大小,单位是字节。
sizeof(a)/sizeof(a[0])
这样的代码,即便修改数组中初始的数据,不需要修改遍历的代码。
数组的赋值
数组变量本身不能被赋值;
若要把一个数组的所有元素交到另一个数组,必须采用遍历;
for(i=0;i<length;i++){ b[i]=a[i]; }
遍历数组
通常用for循环,糖=让循环变量从i从0到<数组的长度,使i恰好为有效数组。
数组作为函数参数,往往必须在再用另一个参数来传入数组的大小。
数组例子->素数
int isprime(int x)//运用函数
{
int ret=1;
int i;
if(x==1) ret=0;
for(i=2;i<x;i++){
if(x%i==0){
ret=0;
break;
}
}
return ret;
}
当n很大时,循环效率差。
方法一:先判断是否是偶数,去掉偶数 + sqrt()
方法二:拿比x小的素数来测试是否是素数
算法:(先得有素数表)令x为2;将2x 3x 4x直至ax<n的数标记为非素数;令x为下一个没有被标记为非素数的数,重复上述操作;直至所有的数都已经尝试完毕。
标签:cnt,const,int,初识,素数,num,数组 来源: https://blog.csdn.net/weixin_62063501/article/details/121316027
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。