第八次作业

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#define N 100
int main()
{
    int score[N],sum=0,c,j,max,min,i=0,x=0;
    float average;
    printf("输入学生的成绩,输入负数时退出\n");
    scanf("%d",&score[i]);
    x++;
    while(score[i]>=0)
    {
        sum+=score[i];
        i++;
        printf("输入学生的成绩,输入负数时退出\n");
        scanf("%d",&score[i]);
        x++;
    }
    average=(float)sum/x;
    printf("平均分为%.2f\n",average);
    max=score[0];
    min=score[0];
    i=0;
    while(i<x&&score[i]>=0)
    {
        if(score[i]>max)
        {
            max=score[i];
        }
        if(score[i]<min)
        {
            min=score[i];
         }
         i++;
     }
     printf("最高分为%d,最低分为%d\n",max,min);
     i=0;
     while(i<x&&score[i]>=0)
     {
        if(score[i]==max)
         {
            printf("最高分有第%d个人\n",i+1);
          }
        if(score[i]==min)
        {
            printf("最低分有第%d个人\n",i+1);
        }
        i++;
      }
    printf("输入一个成绩,说明是第几个学生\n");
    scanf("%d",&c);
    for(j=0;j<i;j++)
    {
        if(c==score[j])
        {
             
            printf("该成绩有第%d个学生\n",j+1);
        }
    }
    return 0;
}

  

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
int main()
{
    int i,j,x,a[11]={2,4,6,8,10,12,14,16,18,19};
    printf("输入一个数,插入数组当中");
    scanf("%d",&j);
    for(i=0;i<10;i++)
    {
        if(a[i]>j)
        {
            x=i;
            break;
        }
        else
        {
            x=10;
        }
    }
    for(i=10;i>x;i--)
    {
        a[i]=a[i-1];
    }
    a[x]=j;
    for(i=0;i<11;i++)
    {
        printf("%4d",a[i]);
    }
    return 0;<br>}

  

 

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main()
{
int a,b,c,s[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(s[a]+s[b]+s[c]==12&&c<10)
{
printf("%d+%d=%d\n",a,b,c);
}
}
return 0;
}

实验总结:1.数组的下标从零开始。

               2.数组能处理大量数据,优化程序。

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

               4.要多方面考虑题目结果,使代码完整。

               5.变量对应的关系要搞清楚。

知识点总结:1.数组与循环结构紧密相连,一般情况下,循环变量的值随数组元素的下标变化。

                 2数组使用时要先定义才能使用,C语言不会对数组下标做越界检查。

                 3.数组不能被赋值。

 

posted on   计科张桃林  阅读(164)  评论(3编辑  收藏  举报

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示