首页 > 代码库 > 第八次作业

第八次作业

 1. 数组的定义,数组元素的引用,数组的初始化和赋值。

#include<stdio.h>
#define N 100
int main()
{
    int  score[N] ,i,grade,n,sum=0,max,min,x=0,y=0;
    double ave;
    printf("请输入学生的个数");
    scanf("%d",&n);
    printf("输入成绩:\n");
    scanf("%d",&grade);
    score[0]=grade;
    sum+=grade;
    max=score[0];
    min=score[0];
    for(i=1;i<n;i++)
    {
        printf("输入成绩:\n");
        scanf("%d",&grade);
        score[i]=grade;
        sum+=grade;
        if(score[i]>max)
        {
            max=score[i];
            x=i;
        }
        if(score[i]<min)
        {
            min=score[i];
            y=i;
        }        
    }
    ave=(double)sum/n;
    printf("平均数为%.2f,最高分为%d,是第%d个",ave,max,x+1); 
    for(i=x+1;i<n;i++)
    {
        if(score[i]==max)
        printf(",第%d个 ",i+1);
    }
    printf("\n最低分为%d,是第%d个",min,y+1); 
    for(i=y+1;i<n;i++)
    {
        if(score[i]==min)
        printf(",第%d个 ",i+1);
    }
    printf("\n输入一个查询的成绩:\n");
    scanf("%d",&grade);
    for(i=0;i<n;i++)
    {
        if(score[i]==grade)
        {
            printf(" 第%d个 ",i+1);
        }
    }
    return 0;
}

 技术分享

 

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

#include<stdio.h>
#define N 11
int main()
{
    int numbers[N]={1,2,3,4,5,6,7,8,9,10},number,i,n,a=1;
    printf("请输入想插入的数。\n");
    scanf("%d",&number);
    for(i=0;i<N-1;i++)
    {
        if(number<=numbers[i])
        {
            a=0;
            for(n=N-2;n>=i;n--)
            {
                numbers[n+1]=numbers[n];
            }
            numbers[i]=number;
            break;
        }
    } 
    if(a)
    {
        numbers[N-1]=number;
    }
    for(i=0;i<N;i++)
    {
        printf(" %d",numbers[i]);
    }
    return 0;
}

技术分享技术分享技术分享

 

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

#include<stdio.h>
int main()
{
    int a,b,c,gen[10]={6,2,5,5,4,5,6,3,7,6};
    for(a=0;a<=9;a++)
     for(b=0;b<=9;b++)
       {
             c=a+b;
             if(c>9)
             break;
             if(gen[a]+gen[b]+gen[c]==12&&a+b==c&&a!=b)
        {
            printf("%d+%d=%d\n",a,b,c);
        }
       }
     return 0;
}

技术分享

 

 二、知识点总结

1.数组的定义

(1)一维数组:数据类型 数组名[数组长度]

(2)引用

       数组必须先定义,后使用

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

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

       数组元素表示形式:

              数组名[下标]

                   下标从0开始

                    允许快速随机访问

2.赋值

        初始化 int a[5]={1,2,3,4,5};相当于a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;

             数组不能初始化,其元素值为随机数

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

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

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

 

 三、实验总结

1.整形除整形还是整形,要强制类型转换。

2.数组的下标是从零开始的

3.c语言对数组不作越界检查,要注意

第八次作业