首页 > 其他分享 >Day6:杨辉三角、冒泡选择排序、交集存新数组、十名学生成绩、四组学生成绩

Day6:杨辉三角、冒泡选择排序、交集存新数组、十名学生成绩、四组学生成绩

时间:2024-12-03 21:29:19浏览次数:9  
标签:aa arr Day6 max int printf 杨辉三角 成绩

题目:使用二维数组输出杨辉三角

分析

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    
    int h=10,l=10;
    int arr[h][l];
    //初始化数组
    for(int i=0;i<h;i++)
    {
        for(int j=0;j<l;j++)
        {
            if(j==0||j==i)
            {
                arr[i][j]=1;
            }
            else
                arr[i][j]=0;
        }
    }
    //查看初始化效果
    for(int i=0;i<h;i++)
    {
        for(int j=0;j<l;j++)
        {
            printf("%-5d",arr[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    
    //赋值阶段
    for(int i=1;i<h-1;i++)
    {
        for(int j=0;j<l-1&&j<=i;j++)
        {
                arr[i+1][j+1]+=arr[i][j]+arr[i][j+1];

        }
    }
    //显示阶段
    for(int i=0;i<h;i++)
    {
        for(int j=0;j<l&&j<=i;j++)
        {
            printf("%-5d",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

作业:过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩

代码:

<1>冒泡法:从小到大--只有你比我大就交换顺序

<2>选择:找出最小值的位置,然后将位置的数据和第一个位置的数据进行交互

作业:有如下两个数组:int arr[] = {1,2,3,4,5,6,7,8,9,0};  int brr[] = {3,7,15,9,20,2,100, 4}; 要求,自定义一个数组crr,将上面两个数组的交集存放到新数组中,并输出新数组中的内容。

分析

方式一:

遍历数组,获取交集的数量,并将交集内容存入外循环的数组中       //破坏了原来的数组数据

        存入该数组前,可检查是否已经存入了相同的数据

从该数组中取值,给新数组crr

方式二:

遍历数组,获取交集的数量 

重新遍历数组,赋值

方式一:

方式二

作业:定义一个双精度浮点型数组,存放十个学生成绩,输入十名学生成绩,输出赋值后的所有元素。使用选择排序,完成降序排序后输出,并求出平均分,并统计出大于平均分学生的比重,输出结果。

分析

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    double arr[10];
    int len=sizeof(arr)/sizeof(arr[0]);
    int max,high=0;
    double temp,sum=0,ave=0;
    //输入部分
    printf("Student score:\n");
    for(int i=0;i<len;i++)
    {
        scanf("%4lf",&arr[i]);
    }
    //排序前输出显示
    printf("Before sort:\n");
    for(int i=0;i<len;i++)
    {
        printf("%.1lf ",arr[i]);
        sum+=arr[i];
    }
    printf("\n");
    //求出平均分
    ave=sum/len;
    //选择排序
    for(int i=0;i<len;i++)
    {
        max=i;
        for(int j=i;j<len;j++)
        {
            if(arr[max]<arr[j])
                max=j;
        }
        temp=arr[i];
        arr[i]=arr[max];
        arr[max]=temp;
    }
    //排序后输出
    printf("After sort:\n");
    for(int i=0;i<len;i++)
    {
        printf("%.1lf ",arr[i]);
        if(arr[i]>ave)
            high++;
    }
    printf("\nave=%.1lf rate=%.1lf\n",ave,(double)high/(double)len);


    printf("\n");
    

    return 0;
}

题目:23031班有4个小组,每组有5名学生,C语言基础考试成绩,第一组5位同学的成绩为90、92、93、91、88,第二组5位同学的成绩为86、89、87、85、99,第三组5位同学的成绩为100,95,85,75,90,第四组5位同学的成绩为90,85,85,95,80,定义二维数组分别输入4个小组的成绩,利用循环再输出4个小组的学生成绩,求出每个小组的最低成绩,最高成绩并输出每个小组的最高成绩,最低成绩。

分析

int aa[4][5]存入四组学生成绩

int sum[4]存入每组学生总成绩

int max[4]保存每组最高成绩的学生的列坐标:a[i][max[i]];方便使用循环输出

int min[4]保存每组最低成绩的学生的列坐标:a[i][max[i]];方便使用循环输出

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    int aa[4][5];
    int sum[4]={0,0,0,0};
    int max[4]={0,0,0,0};
    int min[4]={0,0,0,0};
    for(int i=0;i<4;i++)
    {
        printf("请输入第%d小组成绩:\n",i+1);
        for(int j=0;j<5;j++)
            scanf("%d",&aa[i][j]);
        printf("\n");
    }

    for(int i=0;i<4;i++)
    {
        printf("第%d小组成绩:\n",i+1);
        for(int j=0;j<5;j++)
        {
            if(aa[i][max[i]<aa[i][j]])
                max[i]=j;
            if(aa[i][min[i]]>aa[i][j])
                min[i]=j;

            printf("%d ",aa[i][j]);
            switch(i)
            {
                case 0: sum[i]+=aa[i][j];break;
                case 1: sum[i]+=aa[i][j];break;
                case 2: sum[i]+=aa[i][j];break;
                case 3: sum[i]+=aa[i][j];break;
            }
        }
        printf("\n");
    }

    for(int i=0;i<4;i++)
    {
        printf("第%d小组平均成绩%d\n",i+1,sum[i]/5);
        printf("第%d组最高成绩%d\n",i+1,aa[i][max[i]]);
        printf("第%d组最低成绩%d\n",i+1,aa[i][min[i]]);
    }
    printf("\n");

    

    return 0;
}

标签:aa,arr,Day6,max,int,printf,杨辉三角,成绩
From: https://blog.csdn.net/qq_53627084/article/details/144220730

相关文章

  • C语言打印杨辉三角
    由杨辉三角可知,最左边与最右边都为一因此先把他们赋值为1,for(i=0;i<n;i++) { arr[i][0]=1; for(j=0;j<n;j++) { if(i==j) arr[i][j]=1; } }通过上述图发现,从n=3开始,出现除1以外的数字; 因此可对他们进行赋值if(i>=2&&j>=1) { arr[i][j]=arr[i-1......
  • 基于Java+SSM+JSP学生信息管理系统(源码+LW+调试文档+讲解等)/学生信息/管理系统/学生
    博主介绍......
  • 杨辉三角形-多语言
    目录C语言实现方法1:使用二维数组方法2:使用一维数组方法3:递归方法方法4:动态规划Python实现方法1:使用二维列表方法2:使用一维列表方法3:使用递归方法4:使用动态规划 Java实现方法1:使用二维数组方法2:使用一维数组方法3:使用递归......
  • L2-015 互评成绩
    目录一、问题描述二、问题分析 三、源码解答四、时空复杂度分析五、参考资料一、问题描述学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编......
  • 用迭代器读取成绩
    1.迭代器,跳过第一个元素2.把字符串转成数字3.如何判断一个正整数是否可以被三整除?(1+2+3)%3==01.读入成绩,按行去读取-跳过第一个元素vallist=ListBuffer[Student]()valit=Source.fromFile("score.txt").getLines().drop(1)读入成绩-按行去读取while(it.......
  • 【纯干货分享】计算机毕业设计必看必学36113+PHP 高校成绩管理系统原创的定制程序,单
     高校成绩管理系统的设计与实现摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用PHP技术建设高校成绩管理系统。本设计主要实现集人性化、高效......
  • Z2400038 Java+Mysql+ssm+layui+freemarker的学生成绩管理系统的设计与实现(源代码 PPT
    学生成绩管理系统1.项目描述2.运行环境3.项目技术4.界面展示5.源码获取1.项目描述SSM+Layui+Freemarker学生成绩管理系统项目概述本项目旨在开发一个基于SSM(Spring+SpringMVC+MyBatis)框架的学生成绩管理系统,结合了Layui前端框架和Freemarker模板引擎,为用......
  • PythonDay6Advance
    PythonDay6Advance模块、类与对象模块内置模块time,random,os,json第三方模块requests,pandas,numpy,....自定义模块xxx.py常见的内置模块hashlib模块该模块主要是进行数据加密的作用。常见的加密方式:sha256()【可逆】md5()【不可逆】importhashlib......
  • 代码随想录算法训练营day61| 卡码网97.小明逛公园 127.骑士的攻击
    学习资料:https://www.programmercarl.com/kamacoder/0097.小明逛公园.htmlfloyd算法,三维矩阵A*算法学习记录:97.小明逛公园(没看懂,抄的)点击查看代码#三维数组Floydif__name__=="__main__":max_int=10005n,m=map(int,input().split())grid=[[[max_......
  • 代码随想录算法训练营day60| 城市间的货物运输之1、2、3
    学习资料:https://www.programmercarl.com/kamacoder/0094.城市间货物运输I-SPFA.htmlSPFA算法(Bellman_ford队列优化算法)学习记录94.城市间的货物运输(两种方法)点击查看代码#法二importcollectionsdefmain():n,m=map(int,input().split())edges=[[]for......