变量的定义
#include <stdio.h>
int main()
{
int a[10];
float b[10];
double d[10];
char c[10];
}
变量的初始化
#include <stdio.h>
int main()
{
int a[3] = {0, 1, 2};
int b[] = {0, 1, 1};
int c[5] = {0, 1, 2};
char d[3] = {'a', 'b', 'c'};
printf("%d", c[3]);
return 0;
}
访问和修改数组
#include <stdio.h>
int main()
{
int a[3] = {0, 1, 2};
printf("%d %d %d\n", a[0], a[1], a[2]);
a[0] = 5;
printf("%d", a[0]);
return 0;
}
数组的读入和输出
#include <stdio.h>
int a[20], ans[20];
int main()
{
int n;
scanf("%d", &n);
for(int i = 0; i < n; i ++) scanf("%d", &a[i]);
for(int i = 0; i < n; i ++) printf("%d ", a[i]);
puts("");
for(int x : a) printf("%d ", x);
return 0;
}
练习:
#include <stdio.h>
int a[20], ans[20];
int main()
{
int n;
scanf("%d", &n);
for(int i = 0; i < n; i ++) scanf("%d", &a[i]);
for(int i = 0; i < n; i ++)
{
int cnt = 0;
for(int j = 0; j < i; j ++)
{
if(a[j] < a[i]) cnt ++;
}
printf("%d ", cnt);
}
return 0;
}
练习题1: 使用数组实现求斐波那契数列的第 N 项。
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
f[0] = 0, f[1] = 1;
for (int i = 2; i <= n; i ++ ) f[i] = f[i - 1] + f[i - 2];
printf("%d", f[n]);
return 0;
}
#include <stdio.h>
int arr[20][20];
bool st[20][20];
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int main()
{
int n;
scanf("%d", &n);
int x = 0, y = 0, d = 1;
for(int i = 1; i <= n * n; i ++)
{
arr[x][y] = i;
st[x][y] = true;
int a = x + dx[d], b = y + dy[d];
if(a < 0 || a >= n || b < 0 || b >= n || st[a][b])
{
d = (d + 1) % 4;
a = x + dx[d], b = y + dy[d];
}
x = a, y = b;
}
for(int i = 0; i < n; i ++)
{
for(int j = 0; j < n; j ++)
{
printf("%3d", arr[i][j]);
}
puts("");
}
return 0;
}
https://www.luogu.com.cn/team/38706