数组
类型符 数组名[常量表达式] (类型、变量名/标识符、值、内存地址)
int a[10]
#include <stdio.h>
//输出11~19
int main()
{
int array[10]; //10:表示大小
int data;
for(data = 1 ; data < 10 ;data++){
array[data] = data + 10;
printf("%d\n",array[data]);
}
return 0;
}
数组初始化
#include <stdio.h>
int main()
{
int i;
//int array[10] = {0,1,2,3}; //后面未赋值的填0
// int array[10] = {0};
// int array[3] = {0,1,2}; 等价于 int array[] = {0,1,2}; //系统根据大小自动分配内存空间
int array[10] = {0,1,2,3,4,5,6,7,8,9};
for(i = 0 ; i < 10 ;i++){
printf("%d\n",array[i]);
}
return 0;
}
#include <stdio.h>
int main()
{
int array[] = {0,1,2,5,4,6};
int size;
int i; //sizeof:计算内存大小
size = sizeof(array)/sizeof(array[0]); //array:表示数组的大小;array[0]:表示数组中一个元素的大小
for(i = 0; i < size ;i++){
printf("%d\n",array[i]);
}
return 0;
}
练习
#include <stdio.h>
#include <stdlib.h>
//0~9,逆向输出
int main()
{
int array[10];
int i = 0;
int data = 0;
for(i = 0 ; i < 10 ;i++){
array[i] = i;
}
//正向输出
for(i = 0 ; i < 10 ;i++){
printf("%d\n",array[i]);
}
puts("====================");
/*
int size = sizeof(array) / sizeof(array[0]); //计算array数组大小
for(i = 0 ; i < size ; i++){
data = size - i -1;
printf("%d\n",array[data]);
}
*/
for(i = 9 ; i >= 0 ; i--){
printf("%d\n",array[i]);
}
return 0;
}
斐波那锲数列
#include <stdio.h>
int main()
{
int array[30];
array[0] = 0;
array[1] = 1;
int i;
for(i = 2 ; i < 30 ; i++){
array[2] = array[i-1] + array[i-2];
printf("%d ",array[i]);
}
return 0;
}
冒泡排序法
#include <stdio.h>
//将元素从小到大输出
int main()
{
int j;
int k;
int temp;
int array[] = {100,52,63,94};
int size = sizeof(array) / sizeof(array[0]);
for(j = 0 ; j < size-1 ; j++){
for(k = 0 ;k < size-1-j ; k++){
if(array[k] > array[k+1]){
temp = array[k];
array[k] = array[k+1];
array[k+1] = temp;
}
}
}
for(j = 0; j < size ; j++){
printf("%d ",array[j]);
}
return 0;
}
选择排序法
#include <stdio.h>
//从小到大输出
int main()
{
int j;
int k;
int temp;
int array[] = {85,98,548,48};
int size = sizeof(array) / sizeof(array[0]); //计算数组内存空间大小
for(j = 0; j < size-1 ;j++ ){
for(k = j+1; k < size;k++){
if(array[j] > array[k]){
temp = array[j];
array[j] = array[k];
array[k] = temp;
}
}
}
for(j = 0; j < size ; j++){
printf("%d ",array[j]);
}
return 0;
}
二维数组
#include <stdio.h>
//二维数组输出:
1 2 3
4 5 6
int main()
{
int array[2][3] = {{1,2,3},{4,5,6}}; //2:2组;3:每组里面有3个元素
// int array[][3] = {1,2,3,4,5,6};
int i;
int j;
for(i = 0 ; i < 2;i++){
for(j = 0; j < 3; j++){
printf("%d ",array[i][j]);
}
printf("\n");
}
return 0;
}
一些初始化写法
#inclue <stdio.h>
int main()
{
int array[3][4] = {{1},{5},{9}}; //3行4列,可以不写行,一定要写列
//int array[3][4] = {{1},{0,6},{0,0,11}};
return 0;
}
#include <stdio.h>
//查找数组中最大元素
int main()
{
int array[][4] = {5,7,87,54,655,41,215,545,451,545,45454,999};
int row; //行
int column; //列
int i;
int j;
int max = 0;
for(i = 0 ; i < 3;i++){ //打印数据
for(j = 0; j < 4; j++){
printf("%d \t",array[i][j]);
}
printf("\n");
}
for(i = 0; i < 3; i++){ //查找最大数据
for(j = 1; j < 4; j++){
if(array[i][j-1] > array[i][j]){
max = array[i][j-1];
row = i;
column = j-1;
}
}
}
printf("max = %d ",max);
return 0;
}