C语言 一维数组
数组定义:同一类型的多个元素的集合。
数组名不能与其他变量名相同,数组的定义类型与变量的定义类型相同。
例子:int arr[16]={1,2,3,4,5 };
可以打印数组在内存中的地址:printf("%",sizeof(arr));
数组的长度,是用数组的大小/开辟类型的字节长度 sizeof(arr)/sizeof(int);
如果数组的长度够长,但是后面没有那么多元素,则剩余的元素都为当前类型的默认值;
arr[0]=200;
数组元素可以重新赋值,就是左边这个,第0个元素重新赋值为200,
有n个元素,最后一个是arr[n-1];
核心:[ ]下标符
打印数组的元素或者编辑数组,都不能超过数组的边界,否则会崩溃。
难点:冒泡排序
#include<stdio.h>
void main()
{
int t = 0;
int a[]={9,5,4,7,8,2,1,6,3};
for(int i = 0;i<(sizeof(a)/sizeof(int));i++){
for(int j = 1;j<(sizeof(a)/sizeof(int));j++){
if(a[j]>a[j-1]){
a[j]=a[j]+a[j-1];
a[j-1]=a[j]-a[j-1]; //黑匣子,数字交换
a[j] = a[j]-a[j-1];
}
}
}
while(t<9){
printf("%d ",a[t]);
t++;
}
getchar();
}
其实冒泡排序的一个容易错的地方是j的初始值的定义,容易定义为0开始,然后导致函数无法运行。C语言数组中常用到的英文单词:
array 数组
reference 引用 element 元素
address 地址 sort 排序
character 字符
string 字符串 subscript 下标
数组定义中 [ ] 方括号内可以是符号常量或者常量表达式;
而且可以和变量一起定义: int a,b,c,arr[10];
C语言规定只能逐个引用数组元素而不能一次引用整个数组;
对全部数组元素赋值初值时,数组长度可以省略;
arr[]={1,2,3,4,5,6,7,8.......................};
定义字符串要特别注意的格式: char str[100]="Hellow"; //意思是定义了一个99个字符末尾还接了一个\0
下面几个是今天学习的小编程:
1、定义一个数组,给它初始值,并打印。
#include<stdio.h>
void main()
{
int a[10] = {0,1,2,3,4,5,6,7,8,9};
for(int i = 9;i>=0;i--){
printf("%d\n",a[i]);
}
getchar();
}
2、输入同一行三个数字,并打印出三个数#include<stdio.h>
void main()
{
printf("请输入三个数");
int a[3];
scanf("%d,%d,%d",&a[0],&a[1],&a[2]);
printf("您刚刚输入的数字有:");
for(int i = 0;i<3;i++){
printf("%d ",a[i]);
}
}
3、逐个输入10个数,并打印出输入过的所有数#include<stdio.h>
void main()
{
printf("请输入十个整数:");
int i=0;
int t = 0;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("您刚刚输入过的数为:");
while(t<10){
printf("%d ",a[t]);
t++;
}
getchar();
}
4、输入三个数字,并求出它的平均值#include<stdio.h>
void main()
{
printf("请输入三个整数:");
int i=0;
int t = 0;
float S = 0;
int j = 0;
int a[10];
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
for(t;t<3;t++){
S=S+a[t];
//printf("1%f%d\n",S,t);
//S=S/t;
//printf("2%f%d\n",S,t);
}
//printf("%f\n",t);
printf("平均值为:%f",S/t);
}
5、输入一个数组,再输入一个数,并查找数组中是否有这个数:#include<stdio.h>
void main()
{
printf("请输入五个整数:");
int i=0;
int a[5];
for(i;i<5;i++)
{
scanf("%d",&a[i]);
}
printf("——————分———隔————线———————\n");
printf("请输入您要查找的数:");
int n=0,c = 0;
scanf(" %d",&n);
for(c;c<(sizeof(a)/sizeof(int));c++){
if(n==a[c]){
printf("1\n");
break;
}
else printf("0\n");
}
}
今天学习的数组都非常的实用;也相当的简单。