首页 > 代码库 > 第九次作业
第九次作业
一、实验内容
1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
代码
1 #include<stdio.h> 2 #define N 999 3 void input(int score[],int n);//输入函数 4 double average(int score[],int n);//平均值 5 int maxindex(int score[],int n,int max[]);//最大值下标 6 int minindex(int score[],int n,int min[]);//最小值下标 7 void search(int score[],int n);//查找 8 void sort(int score[],int n);//排序 9 void output(int score[],int n);//输出 10 int main() 11 { 12 int i,a[N]={0},c[N]={0},d,score[N],n,imax,imin,imaxindex,iminindex; 13 double ave; 14 printf("Input the number of students:\n"); 15 scanf("%d",&n); 16 printf("Input the score of students:\n"); 17 input(score,n); 18 imaxindex=maxindex(score,n,a); 19 imax=score[a[0]-1]; 20 iminindex=minindex(score,n,c); 21 imin=score[c[0]-1]; 22 printf("average=%.2f\n",ave); 23 printf("max=%d\n",imax); 24 for(i=0;i<=imaxindex;i++) 25 { 26 if(a[i]>0) 27 { 28 printf("num%d\n",a[i]); 29 } 30 } 31 printf("min%d\n",imin); 32 for(i=0;i<=iminindex;i++) 33 { 34 if(c[i]>0) 35 { 36 printf("num%d\n",c[i]); 37 } 38 } 39 printf("\n"); 40 search(score,n); 41 printf("\n"); 42 sort(score,n); 43 output(score,n); 44 return 0; 45 } 46 void input(int score[],int n) 47 { 48 int i; 49 for(i=0;i<n;i++) 50 { 51 scanf("%d",&score[i]); 52 } 53 } 54 int iaverage(int score[],int n) 55 { 56 int sum,i; 57 sum=0; 58 for(i=0;i<n;i++) 59 { 60 sum+=score[i]; 61 } 62 return (double)sum/n; 63 } 64 int maxindex(int score[],int n,int a[]) 65 { 66 int i,j,b; 67 b=score[0]; 68 j=0; 69 for(i=1;i<n;i++) 70 { 71 if(b<score[i]) 72 { 73 b=score[i]; 74 } 75 } 76 for(i=0;i<n;i++) 77 { 78 if(b==score[i]) 79 { 80 a[j]=i+1; 81 j++; 82 } 83 } 84 return j-1; 85 } 86 int minindex(int score[],int n,int a[]) 87 { 88 int i,j,b; 89 b=score[0]; 90 j=0; 91 for(i=1;i<n;i++) 92 { 93 if(b>score[i]) 94 { 95 b=score[i]; 96 } 97 } 98 for(i=0;i<n;i++) 99 { 100 if(b==score[i]) 101 { 102 a[j]=i+1; 103 j++; 104 } 105 } 106 return j-1; 107 } 108 void search(int score[],int n) 109 { 110 int i,a,flag; 111 flag=0; 112 printf("Input the score you want search\n"); 113 scanf("%d",&a); 114 for(i=0;i<n;i++) 115 { 116 if(a==score[i]) 117 { 118 printf("num%d ",i+1); 119 flag=1; 120 } 121 } 122 if(flag==0) 123 { 124 printf("Don‘t have this score\n") ; 125 } 126 } 127 void sort(int score[],int n) 128 { 129 int a,i,j,x,flag; 130 131 for(i=0;i<n;i++) 132 { 133 flag=0; 134 for(j=0;j<n-1;j++) 135 { 136 if(score[j]<score[j+1]) 137 { 138 a=score[j]; 139 score[j]=score[j+1]; 140 score[j+1]=a; 141 } 142 else 143 { 144 flag=1; 145 } 146 } 147 if(flag==0) 148 { 149 break; 150 } 151 } 152 } 153 void output(int score[],int n) 154 { 155 int i; 156 for(i=0;i<n;i++) 157 { 158 printf("%5d",score[i]); 159 } 160 }
运行结果
2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
1 #include<stdio.h> 2 #define N 100 3 int main() 4 { 5 int i,n=0,sum[N]; 6 for(i=0;i<100;i=i+1) 7 { 8 sum[i]=i+1; 9 } 10 for(i=0;i<100;i=i+1) 11 { 12 if(sum[i]%3==0||sum[i]%7==0) 13 { 14 sum[i]=0; 15 } 16 } 17 for(i=0;i<100;i++) 18 { 19 if(sum[i]!=0) 20 { 21 n++; 22 printf("%d ",sum[i]); 23 } 24 } 25 printf("\n还剩下%d个数\n",n); 26 }
运行结果
总结
1.看了一下,尽量减少计算机的运算量,小毛病很多,以后要注意
2.函数名对应不要输错
第九次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。