数组—代码练习
知识点;
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;
}
代码练习—数组
猜你喜欢
转载自blog.csdn.net/weixin_42248871/article/details/105171663
今日推荐
周排行