📅  最后修改于: 2020-10-22 01:22:10             🧑  作者: Mango
数组定义为存储在连续内存位置的相似类型数据项的集合。数组是C编程语言中的派生数据类型,可以存储原始数据类型,例如int,char,double,float等。它还可以存储派生数据类型的集合,例如指针,结构,数组是最简单的数据结构,其中每个数据元素都可以使用其索引号进行随机访问。
如果必须存储相似的元素,则C数组会很有用。例如,如果我们要在6个科目中存储学生的成绩,则无需为不同科目中的成绩定义不同的变量。取而代之的是,我们可以定义一个数组,该数组可以将标记存储在连续存储位置的每个主题中。
通过使用数组,我们可以轻松访问元素。只需几行代码即可访问数组的元素。
该数组包含以下属性。
1)代码优化:更少的代码来访问数据。
2)轻松遍历:通过使用for循环,我们可以轻松地检索数组的元素。
3)易于排序:要对数组的元素进行排序,我们只需要几行代码。
4)随机访问:我们可以使用数组随机访问任何元素。
1)固定大小:无论大小,我们在声明数组时定义的大小都不能超过限制。因此,它不会像LinkedList那样动态增加大小,我们稍后将学习它。
我们可以通过以下方式用c语言声明一个数组。
data_type array_name[array_size];
现在,让我们看一下声明数组的示例。
int marks[5];
在这里,int是data_type,标记是array_name,5是array_size。
初始化数组的最简单方法是使用每个元素的索引。我们可以使用索引来初始化数组的每个元素。考虑以下示例。
marks[0]=80;//initialization of array
marks[1]=60;
marks[2]=70;
marks[3]=85;
marks[4]=75;
#include
int main(){
int i=0;
int marks[5];//declaration of array
marks[0]=80;//initialization of array
marks[1]=60;
marks[2]=70;
marks[3]=85;
marks[4]=75;
//traversal of array
for(i=0;i<5;i++){
printf("%d \n",marks[i]);
}//end of for loop
return 0;
}
输出量
80
60
70
85
75
我们可以在声明时初始化c数组。让我们看一下代码。
int marks[5]={20,30,40,50,60};
在这种情况下,不需要定义大小。因此,也可以将其编写为以下代码。
int marks[]={20,30,40,50,60};
让我们看看C程序在C中声明和初始化数组。
#include
int main(){
int i=0;
int marks[5]={20,30,40,50,60};//declaration and initialization of array
//traversal of array
for(i=0;i<5;i++){
printf("%d \n",marks[i]);
}
return 0;
}
输出量
20
30
40
50
60
在下面的程序中,我们使用气泡排序方法对数组进行升序排序。
#include
void main ()
{
int i, j,temp;
int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
for(i = 0; i<10; i++)
{
for(j = i+1; j<10; j++)
{
if(a[j] > a[i])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("Printing Sorted Element List ...\n");
for(i = 0; i<10; i++)
{
printf("%d\n",a[i]);
}
}
#include
void main ()
{
int arr[100],i,n,largest,sec_largest;
printf("Enter the size of the array?");
scanf("%d",&n);
printf("Enter the elements of the array?");
for(i = 0; ilargest)
{
sec_largest = largest;
largest = arr[i];
}
else if (arr[i]>sec_largest && arr[i]!=largest)
{
sec_largest=arr[i];
}
}
printf("largest = %d, second largest = %d",largest,sec_largest);
}