-
数组——
Date Type ArrayName[size];
----Date Type:数据类型
----ArrayName:数组名称
-
数组的初始化
----int a[3]={1,2,3};全部初始化
----int a[3]={1,3};部分初始化其他元素为0
----int a[3]={1};第一个元素为1其他元素为0
----int a[3]={[2]=3};有些标准支持给其中某个值进行赋值
----int a[]={1,2,3,4} 数组元素的多少取决于括号里面的格式
----数组里面的下标定义时必须给定!!!
----#defien
-
元素的访问
----数组的元素标号是从0开始的
----地址占位符:%p或者%x(正规的用法为%p)需要对应& 取地址符。
----数组的储存也是一种数据结构,数组中的元素顺序储存;数组中每个元素的类型都相同。
-
数组的地址问题
int arr=[5];
arr:0x00000000
&arr[0]:0x00000000
&arr:0x00000000
arr+1:0x00000004
&arr[0]+1;0x00000004
&arr+1:0x00000014
注释:arr:数组名,也代表数组元素的首地址,即第一个元素的地址
&arr[0]:数组元素的首地址,即第一个元素的地址
&arr:数组的首地址
arr+和&arr[0]+1:表达的意思一样
&arr+1
-
ASC||码
'A'~'Z' 97~122 'a'~'z' 65~90
-
二维数组——
DateType ArrayName[行下标][列下标]
DateType ArrayName[ ][列下标]
-
二维数组的初始化
----int arr[3][3]={1,2,3};
----int arr[3][3]={{1,2,3},{1,2,3},{1,2,3}};
*###作业
-
1.排序后插入再排序
#include <stdio.h>
#include <windows.h>
void sort(int a[50],int n,int x)
{
int i,j,tpme;
switch(x)
{
case 1:
{
for(i=0;i<n;i++)
{
for(j=0;j<(n-1);j++)
{
if(a[j]>a[j+1])
{
tpme=a[j];
a[j]=a[j+1];
a[j+1]=tpme;
} /*printf("%d,%d",a[i],a[i+1]);*/
}
}
break;
}
case 2:
{
for(i=0;i<n;i++)
{
for(j=0;j<(n-1);j++)
{
if(a[j]<a[j+1])
{
tpme=a[j];
a[j]=a[j+1];
a[j+1]=tpme;
}
}
}
break;
}
default : ;
}
}
void main()
{
int i,x,n=0;
int a[50];
for(i=0;;i++)
{
system("cls");
printf("———请输入想要排序的数(%d)\n",i+1);
printf("———当前数组排列为\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n\n");
printf("———输入'0'结束输入\n");
scanf("%d",&a[i]);
if(a[i]==0) break;
++n;
}
for(;;)
{
system("cls");
printf("———当前数组排列为\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n\n");
printf("———请选择排序方式\n",i+1);
printf("———输入'1' 升序\n");
printf("———输入'2' 降序\n");
printf("———输入'3' 插入一个数\n");
printf("———输入'0' 退出\n");
scanf("%d",&x);
switch(x)
{
case 1:{sort(a,n,x);break;}
case 2:{sort(a,n,x);break;}
case 3:
{
printf("请输入要插入的数:");
scanf("%d",&a[n]);
n++;
system("cls");
printf("插入成功!\n");
getch();
break;
}
case 0:exit(0);
default :;
}
}
}
Paste_Image.png
网友评论