Practice Code - Array

数组—代码练习
知识点;
1、数组的元素下标是从0开始;
2、数组是连续的放在内存空间;
3、数组中的所有元素必须属于相同的数据类型
一维数组练习
练习1、动态地从键盘录入信息并赋值
# include<stdio.h>
# define N 5   // 宏定义
int main()
{
	double score[ N ];  
	int i;
		for (i = 0; i < N; i++)
		{
			printf("请输入第%d位同学的成绩:",i + 1);
			scanf_s("%lf",&score[ i ]);
		}
		//下面的循环用来打印数组元素
		for (i = 0; i < N; i++)
		{
			printf("第%d位同学的成绩是:%.2lf\n",i + 1,score[ i ] );
		}
	return 0;
}

练习2: 有一个数列:8,4,2,1,23,344,12
循环输出数列的值,求数列中所有数值的和以及平均值
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数

思路:
1、定义一维数组,并且初始化
2、循环输出
3、求和以及平均值
4、查数


# include<stdio.h>
int main()
{	
	int nums[] = { 8, 4,2,1,23,344,12 };
	int i;
	int sum = 0;
	double avg; 
	int searnum;
	printf("输出数组元素:\n");
	for (i = 0; i < 7; i++)
	{
		printf("%d\n",nums[i]);
	}
	printf("\n********************\n");

	// 求和以及平均值
	for (i = 0; i < 7; i++)
	{
		sum += nums[i];
	}
	avg = sum / 7;
	printf("数组的平均值是%.2lf	\n", avg);

	//查数
	printf("请输入要查找的数子:");
	scanf_s("%d",&searnum);
	for (i = 0; i < 7; i++)
	{
		if (searnum == nums[i])
		{
			printf("找到了相同的元素");
			break;
		}

	}  //循环正常退出时, i = 7
	if ( i == 7)
	{
		printf("茫茫人海,没有找到 !");
	}
	return 0;
}  

练习3:删除数组中的元素和新插入元素
数组删除的逻辑:
 12  34 23 67 9
1、查找要删除数字的下标
2、从下标开始,后面一个覆盖前面的一个数字
3、数组的总长度- 1

	
# include<stdio.h>
int main()
{
	int count = 5;//表示数组的元素个数
	int powers[] = { 42322,45771,40907,41234,40767 }; 
	int deleterPower; // 用户要删除的战斗值
	int deleterIndex = -5;// 要删除战斗值的下标,给一个不可能的值,方便判断
	int i;
	int inserPower;//新插入的战斗值
	printf("当前的战斗值有: \n");
	for (i = 0; i < count; i++)
	{
		printf("%d,\n",powers[ i ]);
	}
	printf("请输入要删除的战斗值:\n");
	scanf_s("%d",&deleterPower);
	for (i = 0; i < count; i++)
	{
		if (deleterPower == powers[i])
		{
			deleterIndex = i;
			break;
		}
	}
	if (-5 == deleterIndex)
	{
		printf("没有找到哦! \n");
	}
	else
	{
		for (i = deleterIndex; i < count - 1; i++)
		{
			powers[i] = powers[i + 1];
		}
		count = count - 1;
		printf("当前数组的元素为%d\n",count);
		printf("删除后的结果为: \n");
		for (i = 0; i < count; i++)
		{
			printf("%d, \n", powers[i]);
		}
	}
	
	//删除之后插入战斗值
	printf("新插入的战斗值:");
	scanf_s("%d",&inserPower);
	powers[count] = inserPower;
	count = count + 1;
	printf("新插入战斗值后的结果为: \n");
	for (i = 0; i < count; i++)
	{
		printf("%d,",powers[i ]);
	}


	return 0;
}

二维数组练习
  
 练习1:表示学生的成绩表
 四个学生的3门课成绩- 4行3列

# include<stdio.h>
int main()
{
	int i, j;
	double scores[4][3] = {
		{98,99,95},
		{45,35,65},
		{82,65,75},
		{20,50,59}
	};
	printf("语文\t英语\t数学\t\n");
	for (i = 0; i < 4; i++)
	{
		for (j  = 0 ; j < 3;j++)
		{
			printf("%.1lf\t",scores[i][j]);
		}
		printf("\n");

	}

	return 0;
}

 

Published 16 original articles · won praise 2 · Views 135

Guess you like

Origin blog.csdn.net/weixin_42248871/article/details/105171663