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

第八次作业

一、 实验内容 

1.实验要求

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

代码

 1 #include<stdio.h>
 2 #define N 999
 3 int main()
 4 {
 5     int score[N],sum=0,i,n,max,min,y;
 6     double average;
 7     printf("Please input the numbers of students:\n");
 8     scanf("%d",&n);
 9     printf("Please input the  score:\n");
10     for(i=0;i<n;i++)
11     {
12         scanf("%d",&score[i]);
13     }
14     for(i=0;i<n;i++)
15     {
16         sum+=score[i];
17     }
18     average=(double)sum/n;
19     printf("The average is:%5.lf\n",average);
20     max=score[0];
21     for(i=0;i<n;i++)
22     {
23         if(score[i]>max)
24         {
25             max=score[i];
26         }
27     }
28     printf("Max=%d num%d\n",max,i);
29     min=score[0];
30     for(i=0;i<n;i++)
31     {
32         if(score[i]<min)
33         {
34             min=score[i];
35         }
36     }
37     printf("Min=%d num%d\n",min,i);
38     printf("Input the number you want to search\n");
39     scanf("%d",&y);
40     for(i=0;i<n;i++)
41     {
42         if(score[i]==y)
43         {
44             i+=1;
45             printf("num%d\n",i);
46             break;
47         }
48     }
49 
50 }
51 int search(int num[],int n,int x)
52 {
53     int i;
54     for(i=0;i<=n;i++)
55     {
56         if(num[i]==x)
57             return i;
58     }
59     return -1;
60 }

运行结果

技术分享

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

代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i,x,a,b[11]={5,10,15,20,25,30,35,40,45,50};
 5     scanf("%d",&a); 
 6     for(i=10;i>=0;i--)
 7     {
 8         if(a>=b[i-1])
 9         {
10             for(x=10;x>i;x--)
11             {
12                 b[x]=b[x-1];
13             }
14             b[i]=a;
15             break;
16         }
17         if(i==0)
18         {
19             for(x=10;x>i;x--)
20             {
21                 b[x]=b[x-1];
22             }
23             b[0]=a;
24             break;
25         }
26     }
27     for(i=0;i<11;i++)
28     {
29         printf("%d ",b[i]);
30     }    
31 }

运行结果

技术分享

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

代码

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int x,y,z,a[10]={6,2,5,5,4,5,6,3,7,6};
 5     for(x=0;x<=9;x++)
 6     {
 7         for(y=0;y<=9;y++)
 8         {
 9             for(z=0;z<=9;z++)
10             {
11               if(a[x]+a[y]+a[z]==12&&x+y==z)
12               {
13                   printf("%d+%d=%d\n",x,y,z);
14               }
15             }
16         }
17     }
18 return 0;    
19 }

运行结果

技术分享

知识点总结:

1.define 范围可以尽量大些

2.不能定义动态数组

实验总结

第一题最值还有点问题,时间关系我已经尽力了,同时祝贺才艺大赛圆满成功,工作人员辛苦了

 

第八次作业