C语言程序设计:一维数组操作
1. 引入
在C语言中,数组是一种基本的数据结构,用于存储相同类型的元素。数组的操作包括对数组元素的添加、修改、查询以及遍历,这些操作对于数组的管理和数据处理至关重要。本篇将详细讲解一维数组的相关操作,包括如何向数组添加数据、修改数据、查询数据以及遍历数据。
2. 一维数组基础
一维数组的定义格式为:
type array_name[array_size];
type:数组中存储元素的数据类型(如int、float等)。array_name:数组的名称。array_size:数组的大小,表示可以存储多少个元素。
例子:
int arr[5]; // 定义一个存储5个整数的数组
3. 一维数组的常见操作
3.1 添加数据
在C语言中,通过数组下标添加元素。
示例:
#include <stdio.h>
int main() {
int nums[5];
nums[0]=3;
nums[1]=7;
nums[2]=8;
nums[3]=9;
nums[4]=10;//添加完数据之后 nums的值是:nums[5]={3,7,8,9,10}
return 0;
}
输出:
3,7,8,9,10
3.2 修改数据
修改数组元素的值,只需通过数组的索引访问指定位置的元素,并赋予新的值即可。
示例:修改数组中的指定元素
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
// 修改第3个元素(索引为2)
arr[2] = 100;
return 0;
}
输出:
10 20 100 40 50
3.3 查询数据
根据数组下标获取元素。查找数据。例子: 1.查找nums2数组下标为4的数据
语法: 数组名[下标]
示例:查找数组中元素
#include <stdio.h>
int main() {
int nums2[5]={1,3,5,7,9};
printf("查找nums2数组下标为4的数据:%d\n",nums2[4]);//9
return 0;
}
输出:
9
3.4 遍历数组
遍历数组是指逐一访问数组中的所有元素。通常通过循环结构来实现遍历操作。
示例:遍历数组并打印所有元素
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
// 遍历数组并输出每个元素
printf("数组的所有元素是:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
输出:
数组的所有元素是:
10 20 30 40 50
4. 总结
添加数据:
可以通过将新元素添加到数组的末尾来实现数据的添加,注意数组的大小是固定的,因此需要管理有效元素的个数。
修改数据:
修改数据的过程非常简单,直接通过数组的索引访问并赋值即可。
查询数据:
查询数据通常通过遍历数组来查找目标值,如果找到则返回其索引,否则返回未找到的标志值(如 -1)。
遍历数组:
遍历数组是通过循环访问数组中的每一个元素,常用于输出或对每个元素进行处理。
5. 练习题
1. 题目:编写一个程序,查询数组中的最大值,并输出它的位置。
答案:
#include <stdio.h>
int main() {
int arr[5] = {10, 50, 30, 70, 40};
int max = arr[0], position = 0;
for (int i = 1; i < 5; i++) {
if (arr[i] > max) {
max = arr[i];
position = i;
}
}
printf("最大值是:%d,位置是:%d\n", max, position);
return 0;
}
2. 题目:编写一个程序,修改数组中的指定位置的元素,并输出修改后的数组。
答案:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int index = 2, new_value = 100; // 修改第3个元素(索引为2)
// 修改元素
arr[index] = new_value;
// 输出修改后的数组
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
3. 题目:编写一个程序,添加一个元素到数组中,并输出添加后的数组。
答案:
#include <stdio.h>
int main() {
int arr[6] = {10, 20, 30, 40, 50}; // 定义数组大小为6
int n = 5; // 当前有效元素的个数
int new_value = 60; // 新添加的元素
// 添加元素
if (n < 6) {
arr[n] = new_value;
n++;
}
// 输出添加后的数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
4.循环输入6个成绩,保存在数组中。求最高成绩、最低成绩、平均成绩、总成绩和。
#include "stdio.h"
main(){
float scores[6],max,min,avgScore,sumScore=0;
int i,j;
for(i=0;i<=5;i++){
printf("请输入第%d个数据:\n",i+1);
scanf(" %f",&scores[i]);
sumScore+=scores[i];
}
max=scores[0];//最高成绩
min=scores[0];//最低成绩
for(j=0;j<=5;j++){
if(scores[j]>=max){//求最大值
max=scores[j];
}
if(scores[j]<=min){
min=scores[j];
}
}
avgScore=sumScore/6;
printf("最高成绩:%.2f\n",max);
printf("最低成绩:%.2f\n",min);
printf("平均成绩:%.2f\n",avgScore);
printf("总成绩是:%.2f\n",sumScore);
}
5.输入10个字母(字母的范围是a b c d) 求 a b c d字母的个数
#include "stdio.h"
main(){
char zimu[10];//保存字母
int a=0,b=0,c=0,d=0;
int i,j;
for(i=0;i<=9;i++){
printf("请输入第%d个字母\n",i+1);
scanf(" %c",&zimu[i]);
}
//统计
for(j=0;j<=9;j++){
if(zimu[j]=='a'){
a+=1;
}
if(zimu[j]=='b'){
b+=1;
}
if(zimu[j]=='c'){
c+=1;
}
if(zimu[j]=='d'){
d+=1;
}
}
printf("a的个数:%d\n",a);
printf("b的个数:%d\n",b);
printf("c的个数:%d\n",c);
printf("d的个数:%d\n",d);
}
通过以上示例,你应该能掌握如何在C语言中使用一维数组进行常见操作,如添加、修改、查询和遍历。继续练习将帮助你更好地理解和应用这些基本概念。
评论区