• 第八次实验作业


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

    #include<stdio.h>
    int main()
    {
        int N;
        printf("请输入班级人数");
        scanf("%d",&N);  
        int score[N],i,sum,max,min,grade,n=0,index1,index2;
        double average;
        for(i=0;i<N;i++)
        {
            printf("请输入学生的成绩:
    ");
            scanf("%d",&score[i]);
        }
        sum=0;
        //求和、平均值 
        for(i=0;i<N;i++)
        {
            sum+=score[i];
        }
        average=(double)sum/N;
        printf("average=%.2lf
    ",average);
        //最大值 
        max=score[0];
        index1=0;
        for(i=0;i<N;i++)
        {
            if(score[i]>max)
            {
                index1=i;
                max=score[i];
                
            }
        }
        printf("最大值为%d,是第%d个学生
    ",max,index1+1);
        //最小值 
        min=score[0];
        index2=0;
        for(i=0;i<N;i++)
        {
            if(score[i]<min)
            {
                min=score[i];
                index2=i;
                
            }
        }
        printf("最小值为%d,是第%d个学生
    ",min,index2+1);
        printf("输入你想找的同学的成绩:
    ");
        scanf("%d",&grade);
        for(i=0;i<N;i++)
        {
            if(grade==score[i])
            {
                printf("找到,是第%d个学生
    ",i+1);
                n++;
            }
        }
        printf("共有%d个学生",n);
        return 0;
    }

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

    #include<stdio.h>
    int main()
    {
        int i,n,p;
        int array[11]={0,11,22,33,55,66,77,88,99,100};
        for(i=0;i<11;i++)
        {
            printf("%d ",array[i]);
        }
        printf("请输入一个正整数整数:
    ");
        scanf("%d",&n);
        for(i=0;i<11;i++)
        {
            if(n>array[i]&&n<array[i+1])
            {
                for(p=10;p>i;p--)
                {
                    array[p]=array[p-1];    
                }
                array[i+1]=n;
            }
            else if(n>array[9])
            {
                array[10]=n;
            }
            else if(n<array[0])
            {
                for(p=10;p>=0;p--)
                {
                    array[p]=array[p-1];
                }
                array[0]=n;
            }
            printf("%d ",array[i]);
        }
        return 0;
    }

        3.用数组实现火柴棍等式

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

    知识点总结:

    1.数组的特点

    (1)数组中的每一个元素都属于同一种数据类型。

    (2)数组一旦创建,不能改变大小。

    (3)数组中的元素在内存中是连续依次排列的。

    2.一维数组的引用

    (1)数组必须先定义,后使用。

    (2)只能逐个引用数组元素,不能一次引用整个数组

    (3)每个数组元素是一个数组类型的变量。

    3.一维数组的赋值

    (1)数组不初始化,其元素值为随机数。

    (2)只给部分数组元素赋初值,则其后的元素被初始化为0

    (3)当全部数组元素赋初值时,可不指定数组长度

    实验总结(实验中遇到的问题及解决方法):

    1.数组变量本身(数组名)不能被赋值。

    2.数组必须先定义,后使用。

    3.数组名【下标】下标从0开始。

    4.数组中的每一个元素都属于同一种数据类型

    5.数组一旦创建,不能改变大小

    6.for后便不要加分号

  • 相关阅读:
    堆栈的分布
    Socket网络编程(TCP/IP/端口/类)和实例
    c语言字节对齐
    理一理字节对齐的那些事
    Socket网络编程(TCP/IP/端口/类)和实例
    socket、端口、进程的关系
    SMT32 启动文件详细解说
    Chapter 1 First Sight——22
    Leetcode389
    Chapter 1 First Sight——21
  • 原文地址:https://www.cnblogs.com/wy97/p/6091337.html
Copyright © 2020-2023  润新知