一、数组
就像一个篮子,属于一个集合 的概念
一个完整的数组:类型、变量、值、内存地址,定义示例:int a[10];
二、数组初始化
2.1 遍历数组
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[10];
int i = 0;
for(i = 0; i<10; i++) {
a[i] = 100+i;
}
puts("------ printf --------");
for(i = 0; i<10; i++) {
printf("a[%d] = %d \r\n",i,a[i]);
}
return 0;
}
2.2 直接赋值
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int i = 0;
puts("------ printf --------");
for(i = 0; i<10; i++) {
printf("a[%d] = %d \r\n",i,a[i]);
}
return 0;
}
2.3 初始化为0
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int a[10] = {0};
puts("------ printf --------");
for(i = 0; i<10; i++) {
printf("a[%d] = %d \r\n",i,a[i]);
}
return 0;
}
2.4 特殊写法
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int a[] = {0,2,3};
puts("------ printf --------");
for(i = 0; i<3; i++) {
printf("a[%d] = %d \r\n",i,a[i]);
}
return 0;
}
2.5 关键字sizeof
计算对应括号中的数据大小空间
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int a[] = {0,2,3};
int size = 0;
size = sizeof(a)/sizeof(a[0]);
puts("------ printf --------");
printf("size = %d \r\n",size);
for(i = 0; i<3; i++) {
printf("a[%d] = %d \r\n",i,a[i]);
}
return 0;
}
2.6 数组编程
逆序输出数组
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int array[10] = {0,4,5,6,7,8,9,1,2,3};
int size = sizeof(array)/sizeof(array[0]);
for(i = 0; i <size; i++ ) {
printf("head ---> %d ",array[i]);
}
puts("-------------\r\n");
for(i = 0; i <size; i++ ) {
printf("back ---> %d ",array[9-i]);
}
return 0;
}
斐波拉数
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int array[10] = {0};
int size = sizeof(array)/sizeof(array[0]);
printf("size %d \r\n",size);
array[0] = 0;
array[1] = 1;
for(i = 2; i<size; i++) {
array[i] = array[i-1]+array[i-2];
}
for(i = 0 ;i < size; i++) {
printf("%d ",array[i]);
}
return 0;
}
冒泡排序
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int j = 0;
int size;
int temp = 0;
int array[8] = {88,1,4,2,5,8,9,0};
size = sizeof(array)/sizeof(array[0]);
for(i = 0; i <size-1; i++) {
for (j = 0; j <size-1-i; j++)
{
if(array[j]>array[j+1]) {
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(i = 0;i <size;i++) {
printf("%d ",array[i]);
}
return 0;
}
选择排序
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int j = 0;
int size;
int temp = 0;
int array[8] = {88,1,4,2,5,8,9,0};
size = sizeof(array)/sizeof(array[0]);
for(i = 0; i <size; i++) {
for (j = i+1; j <size; j++)
{
if(array[i]>array[j]) {
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
for(i = 0;i <size;i++) {
printf("%d ",array[i]);
}
return 0;
}