数组://数组的定义,数组的初始化//
30个同学,表示30次考试的成绩:
int a0=98;......
太多了,换个办法来写,比如使用用数组
int a[30];//定义a,里面有30个变量//
#include<stdio.h>
int main(){
int a[30]; //即数组//
getchar();
return 0;
}
那么如何创建数值呢,总不能让数组是空的吧
#include<stdio.h>
int main(){
int num=10;
int a[30]; //即数组//
int b[30]={15,14,79,87};
//在数组里面加数,如果没有加数的话,那就默认0,如果少了,后面也是补0//
getchar();
return 0;
}
//数组元素,取数组中的第几个数//
比如,我要取第一个,那么比如数组int a[30];
要取第一个的话是a[0],不是a[1],最后一个的话是a[N-1];
举个例子:定义数组int a[4]={5,12,9,8};
求第二和第三个的元素之和为:
int result=a[1]+a[2];
printf("reuslt:%d\n",result); //写个大概,剩下的自己补充//
ps:反正只要记住一点,下表是从0开始的
常见问题:
1.下标是零开始的
比如int a[3];如果查a[3],在大程序里会崩溃,当然负的也不行
2.数组不直接+printf
int a[4]={5,4,7,9} ;
printf("result:%d\n",a);
//不得行 ,第一你看我上面就知道了(doge),a是整个数值,想想都知道//
关于:不一定要int定义数组
数组的访问:
//遍历:指从头到尾逐个访问//
例:
#include<stdio.h>
#include<stdbool.h>
int main(){
int a[4]={5,12,9,8};
//反正你用printf就是不能直接打印(doge)//
for(int i=0;i<4;i++){ //从0开始,毕竟0就是平时的第一项//
int value=a[i];
printf("%d\n",value); //空个行,不然等会挤成一团//
}
getchar();
return 0;
}
那怎么交换第一个和第四个的位置呢?
int temp=a[0];
a[0]=a[3]; //和前面差不多,毕竟是左边赋值给右边//
a[3]=temp;
移动:跳帧元素前后距离
int main(){
int a[8]={5,12,9,8};
//将16插到a[1]的位置//
a[4]=a[3];
a[3]=a[2]; //在调试里查看//
a[2]=a[1];
a[1]=16;
getchar();
return 0;
}
综合例子:求出1-1000之间的完全平方数,将结果保存在数组里
如:1=1*1....*/
#include<stdio.h>
#include<stdbool.h>
int main(){
int result[100];//搞个大空间来放东西//
int count=0;
for (int i=1;i<=1000;i++){ //判断i是否为完全平方数//
for(int k=1;k<=i;k++){
if(k*k==i){
result[count]=i;//到这里就是完全平方数,所以把i保存在result的数组里面//
count++;
break; //终止//
}
}
}
for (int i=0;i<count;i++){
printf("%d\n",result[i]);
}
return 0;
}
总结:数组,放东西的,避免一个参数放一堆东西,或者说要列一大堆列不完,其他的用处其他再说,感觉统计用的多一点(阿巴巴)。