数组
-
一维数组的定义:
类型说明符 数组名 [常量表达式];
int [10]
注意: 定义数组的时候不能动态定义
int n; scanf("%d", &n); int a [n]; // c语言编译时就要储存一个数组的内存. 不运行后期添加数组内存
一些书写格式上的问题
// 遍历下标变量. 输出数组 for (i=0; i<10; i++){ printf("%d", a[i]); } // 下面的写法是错误的. 不能直接输出 printf("%d", a);
一个倒序输出一个数组
#include <stdio.h> void main(){ int i, a[10]; for (i=0; i<=9; i++){ a[i] = i; } for (i=9; i>=0; i--){ printf("%d ", a[i]); } } // 9 8 7 6 5 4 3 2 1 0
-
一维数组的初始化
-
初始化一维数组: int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
a[0] = 0, a[1] = 1......
-
可以只给一部分元素赋值:
int a [10] = {0 ,1, 2, 3, 4, 5};
-
int a[10] = 0 表示全部元素都是0
-
数组动态赋值的方法:
void main(){
int i, max, a[10]; // 必须先给数组创建含有长度的内存
printf("input 10 numbers:\n");
for (i=0; i<10; i++){
scanf("%d", &a[i]);
}
max = a[0];
for (i=1; i<10; i++){
if (a[i]>max){
max = a[i];
}
}
printf("maxnum=%d\n", max);
}
例题1. Fibonacci数列公式. 即: 1. 2. 3. 5. 8....... an = an-1 + an-2
// 过程: 先定义一个20个元素的数组. 并将数组的第一. 第二个元素都初始化成1. 其他元素初始化为0. 通过公式求出其他各元素的值. #include <stdio.h> void main(){ int i; int a[20] = {1, 1}; for (i=2; i<20; i++){ a[i] = a[i-2] + a[i-1]; } // 控制格式化输出 for (i=0; i<20; i++){ if (i % 5 == 0){ print("\n"); } printf("%12d", a[i]); } }
例题2: 用冒泡法(起泡法)对10个数排序(从小到大)
标签:10,int,void,数组,printf,main From: https://www.cnblogs.com/huxiaofeng1029/p/17558783.html#include <stdio.h> void main(){ int a[10]; int i, j, t; printf("Please input 10 munbers:\n"); for (i=0; i<10; i++){ scanf("%d", &a[i]); } printf("\n") // 控制两层循环 // n个数要进行n-1次比较 for (j=0; j<9; j++){ // n-1次 // 在第j次要进行n-j次两两比较 for (i=0; i<9-j; i++){ // n-j次 if (a[i] > a[i+1]){ // 将a[i]和a[i+1]调换 t = a[i]; a[i] = a[i+1]; a[i+1] = t; } } } }