首页 > 代码库 > 第九次作业
第九次作业
.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
# include<stdio.h> # define N 100 void renshu(int sore[],int a); float pingjun(int sore[],int a); void max(int sore[],int a); void min(int sore[],int a); void find(int sore[],int a); void paixu(int sore[],int a); void shuchu(int sore[],int a); int main() { int a,b,c,d,e,h,n; int sore[N]={0}; printf("输入成绩人数\n"); scanf("%d",&a); printf("输入成绩\n"); renshu(sore,a); printf("平均数为%.2f",pingjun(sore,a)); find(sore,a); min(sore,a); max(sore,a); paixu(sore,a); shuchu(sore,a); return 0; } void renshu(int sore[],int a) { int b; for(b=0;b<a;b++) { scanf("%d",&sore[b]); } } float pingjun(int sore[],int a) { int b,sum=0; float average; for(b=0;b<a;b++) { sum=sum+sore[b]; } average=(float)sum/a; return average; } void find(int sore[],int a) { int e,b,c; printf("输入查找的分数\n"); scanf("%d",&e); for(b=0;b<a;b++) { if(e==sore[b]) { printf("他是%d号\t",b+1); } } printf("\n"); } void paixu(int sore[],int a) { int b,c,d,e=0; for(b=0;b<a-1;b++) { for(c=0;c<a-1-b;c++) { if(sore[c]>sore[c+1]) { e=sore[c]; sore[c]=sore[c+1]; sore[c+1]=e; } } } } void shuchu(int sore[],int a) { int b,d; for(b=0;b<a;b++) { d=sore[b]; printf("%d\t",d); } printf("\n"); } void max(int sore[],int a) { int b,c,d,max,n,index[N]={0},e=0,h; max=sore[0]; n=0; for(b=0;b<a;b++) { if(sore[b]==max) { index[++n]=b; } else if(sore[b]>max) { max=sore[b]; n=0; index[++n]=b; } } for(b=1;b<=n;b++) { e=index[b]; printf("最大%d\t",e+1); } printf("\n"); } void min(int sore[],int a) { int b,c,d,e,min=0,n,index[N]={0},h; min=sore[0]; n=0; for(b=0;b<a;b++) { if(sore[b]==min) { index[++n]=b; } else if(min>sore[b]) { min=sore[b]; n=0; index[++n]=b; } } for(b=1;b<=n;b++) { e=index[b]; printf("最小%d\t",e+1); } printf("\n"); }
.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
# include <stdio.h> # define N 100 void saber(int shu[N]); void shuchu(int shu[N]); int main() { int a,b,c,d,e; int shu[N]={0}; for(a=0,b=1;a<N;a++,b++) { shu[a]=b; } saber(shu); shuchu(shu); return 0; } void saber(int shu[N]) { int a,b,c,d; for(a=0;a<N;a++) { if((shu[a]%3==0)||(shu[a]%7==0)) { shu[a]=0; } } } void shuchu(int shu[N]) { int a,b=0,c,d; for(a=0;a<N;a++) { if(shu[a]==0) { continue; } else { printf("%-3d\t",shu[a]); ++b; } if(b%10==0) { printf("\n"); } } printf("共有%d个",b); }
2. 数字加密:输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
# include<stdio.h> # define N 4 int main () { int b,c,d,e,f,shu[N]={0}; char a; printf("输入一个四位数整数加密\n"); for(b=0;b<4;b++) { scanf("%c",&a); shu[b]=((a-48)+9)%10; } c=shu[0]*10+shu[2]*1000+shu[1]+shu[3]*100; printf("%d\n",c); return 0; }
1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的 前m位
实验总结:
1.第一题中应用的函数较多,一个一个的来,简单一点,
2.在函数中into void 两种,比较喜欢第二个当然有时因题而义,有时必须要返回值存在,
3用函数多了老是忘打return 0;尴尬;单词量较少,对于定义的函数名很随意,还有变量的定义也一样,
4.会做的一想就行,有的连体都没看懂,理解问题;
程序1
第一个没有问题程序就是一个数的转换,两个数在数组中变一下位置;没有错误但是仅仅限于这两个数的转换;
程序2
第二个程序没有实现转换;在函数部分出现问题,定义的函数实际上没有参加数的转换,函数使用错误,更改的话按照第一个就可以;
第九次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。