本文概述
- C数组声明
- C数组的初始化
- C数组:带有初始化的声明
- C数组示例:对数组进行排序
- 程序打印数组的最大和第二大元素。
【c一维数组】如果必须存储相似的元素,则C数组会很有用。例如,如果我们要在6个科目中存储学生的成绩,则无需为不同科目中的成绩定义不同的变量。取而代之的是,我们可以定义一个数组,该数组可以将标记存储在每个主题的连续存储位置中。
通过使用数组,我们可以轻松访问元素。只需几行代码即可访问数组的元素。
数组的属性
该数组包含以下属性。
- 数组的每个元素具有相同的数据类型,并具有相同的大小,即int = 4字节。
- 数组的元素存储在连续的存储位置,第一个元素存储在最小的存储位置。
- 数组的元素可以随机访问,因为我们可以使用给定的基地址和数据元素的大小来计算数组中每个元素的地址。
1)代码优化:更少的代码来访问数据。
2)轻松遍历:通过使用for循环,我们可以轻松检索数组的元素。
3)易于排序:要对数组的元素进行排序,我们只需要几行代码。
4)随机访问:我们可以使用数组随机访问任何元素。
C阵列的缺点
1)固定大小:无论大小,我们在声明数组时定义的大小都不能超过限制。因此,它不会像LinkedList那样动态增加大小,我们稍后将学习。
C数组声明我们可以通过以下方式用c语言声明一个数组。
data_type array_name[array_size];
现在,让我们看一下声明数组的示例。
int marks[5];
在这里,int是data_type,标记是array_name,5是array_size。
C数组的初始化初始化数组的最简单方法是使用每个元素的索引。我们可以使用索引来初始化数组的每个元素。考虑以下示例。
marks[0]=80;
//initialization of array
marks[1]=60;
marks[2]=70;
marks[3]=85;
marks[4]=75;
文章图片
C数组示例
#include<
stdio.h>
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数组:带有初始化的声明我们可以在声明时初始化c数组。让我们看一下代码。
int marks[5]={20, 30, 40, 50, 60};
在这种情况下,不需要定义大小。因此,也可以将其编写为以下代码。
int marks[]={20, 30, 40, 50, 60};
让我们看一下C程序在C中声明和初始化数组。
#include<
stdio.h>
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
C数组示例:对数组进行排序在下面的程序中,我们使用气泡排序方法对数组进行升序排序。
#include<
stdio.h>
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<
stdio.h>
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;
i<
n;
i++)
{
scanf("%d", &
arr[i]);
}
largest = arr[0];
sec_largest = arr[1];
for(i=0;
i<
n;
i++)
{
if(arr[i]>largest)
{
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);
}