第八次作业

本文通过三个实验详细介绍了数组的应用:计算学生成绩的平均分、最高分和最低分;将一个数插入已排序的数组并保持有序;使用数组解决火柴棍等式问题。文章深入浅出地讲解了数组的基本操作及其实现方法。

一.实验内容

1.

实验要求:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。

代码:

#include<stdio.h>
#define N 100
int main()
{
    int score[N],n,i,sum,max,min,grade,b;
    double average;
    printf("请输入学生的数量。\n");
    scanf("%d",&n);
    sum=0;
    for(i=1;i<=n;i++)
    {
        printf("请输入第%d个学生的成绩。\n",i);
        scanf("%d",&score[i]);
        sum=sum+score[i];
    }
    average=(double)sum/n;
    printf("平均成绩为%.2lf\n",average);
    max=score[1];
    min=score[1];
    for(i=1;i<=n;i++)
    {
        if(score[i]>max)
        max=score[i];
        if(score[i]<min)
        min=score[i];
    }
    for(i=1;i<=n;i++)
    {
        if(score[i]==max)
        printf("第%d名学生成绩最高。\n",i);
    }
    for(i=1;i<=n;i++)
    {
        if(score[i]==min)
        printf("第%d名学生成绩最低。\n",i);
    }
    printf("请输入你想查找的成绩。\n");
    scanf("%d",&grade);
    b=0;
    for(i=1;i<=n;i++)
    {
        if(score[i]==grade)
        {
            printf("符合这个成绩的学生是%d\n",i);
            b++;
        }
    }
    printf("总共有%d名学生。\n",b);
    return 0;
}

运行结果:

2.

实验要求:现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。

代码:

#include<stdio.h>
#define N 11
int main()
{
    int sum[N]={10,20,30,40,50,60,70,80,90,100},x,i,y=10,c;
    printf("请输入插入其中的数字:\n");
    scanf("%d",&x);
    for(i=0;i<N-1;i++)
    {
        if(sum[i]>=x)
        {
            y=i;
            break;
        }
    }
    if(y<10)
    {
         for(i=N;i>y;i--)
        {
               sum[i]=sum[i-1];
        }
     }
       sum[y]=x;
    for(i=0;i<N;i++)
    {
        printf("%4d\n",sum[i]);
    } 
    return 0;
}

运行结果:

3.

实验要求:用数组实现火柴棍等式

代码:

#include<stdio.h>
int main()
{
    int hcg[10]={6,2,5,5,4,5,6,3,7,6},x,y,z;
    for(x=0;x<=9;x++)
    {
        for(y=0;y<=9;y++)
        {
            z=x+y;
            if(z>9)
            {
                break;
            }
            if(hcg[x]+hcg[y]+hcg[z]==12)
            {
                printf("%d+%d=%d\n",x,y,z);
            }
        }
    }
    return 0;
}

运行结果:

二.知识点总结:

1.运用define确定数组中元素的个数。

2.数组不初始化,其元素值为随机数有部分赋了初值,其他部分就会默认是0。

3.数组变量本身(数组名)不能被复制,它只代表一个地址。

三.实验总结:

1.数组下标从第一个零开始。

2.整形除整形还是整形,不能忘记类型转换

3.每个数组元素是一个数组类型的变量

转载于:https://www.cnblogs.com/kbx1602/p/6106977.html

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值