十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、写一个主函数,10个成绩放在一个数组里。
公司主营业务:网站设计制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出肇东免费做网站回馈大家。
2、然后写一个求平均值的函数,返回平均值,用循环语句求和在求平均值,小学生应该都会求平均值。
3、再写一个排序算法,先模仿一个冒泡排序算法,最简单的排序算法。
这样不就三个函数了吗?,这个题主要让你初步掌握,数组,循环语句的使用,函数的调用,函数参数的传递,函数值的返回等。学习C就自己多练,多想这样会进步,代码就不写了吧,对你不好。
#include "stdio.h"
#include stdlib.h
#include string.h
#include "time.h"
struct abcd{
char ID[11],name[17];
int s1,s2,s3,s4,s5;
double ave;
struct abcd *next;
};
void inp(struct abcd (*p)[45]){
int i,j,k,t;
char id[11]="0000000000";
for(i=0;i4;i++){
for(j=0;j45;j++){
if(++id[9]'9')
for(k=9;k0;k--)
id[k]-=10,id[k-1]++;
strcpy(p[i][j].ID,id);
for(t=0,k=rand()%16;k;k--)
p[i][j].name[t++]=rand()%26+'A';
p[i][j].name[t]='\0';
p[i][j].s1=rand()%101;
p[i][j].s2=rand()%101;
p[i][j].s3=rand()%101;
p[i][j].s4=rand()%101;
p[i][j].s5=rand()%101;
}
}
}
void average(struct abcd (*p)[45]){
int i,j;
for(i=0;i4;i++)
for(j=0;j45;p[i][j].ave=(p[i][j++].s1+p[i][j].s2+p[i][j].s3+p[i][j].s4+p[i][j].s5)/5.0);
}
void selsort(struct abcd (*p)[45]){//4个班统一选择排序
int i,j,k,t;
struct abcd q;
for(t=0;t4;t++)
for(i=0;i45;i++){
for(k=i,j=k+1;j45;j++)
if(p[t][k].avep[t][j].ave)
k=j;
if(k!=i)
q=p[t][k],p[t][k]=p[t][i],p[t][i]=q;
}
}
void bubsort(struct abcd (*p)[45]){//4个班统一冒泡排序
int i,j,t;
struct abcd q;
for(t=0;t4;t++)
for(i=0;i45;i++)
for(j=0;j44;j++)
if(p[t][j].avep[t][j+1].ave)
q=p[t][j],p[t][j]=p[t][j+1],p[t][j+1]=q;
}
void getlink(struct abcd (*p)[45],struct abcd *x){//弄成链表
int i,j,k,t;
struct abcd q;
for(t=i=0;i4;i++)//把4个班的成绩拷贝到临时数组x中
for(j=0;j45;x[t++]=p[i][j++]);
for(i=0;it;i++){//对数组x降序排序
for(k=i,j=k+1;jt;j++)
if(x[k].avex[j].ave)
k=j;
if(k!=i)
q=x[k],x[k]=x[i],x[i]=q;
}
for(i=1;it;x[i-1].next=x+i++);//把数组p搞成单链表
x[i-1].next=NULL;
}
int main(int argc,char *argv[]){
struct abcd c[4][45],t[4*45],*p;
int k;
srand((unsigned)time(NULL));
inp(c);
average(c);
bubsort(c);
selsort(c);//这是脱了裤子FP,无论用什么方法排序结果是一样的,不懂为何这么出题
getlink(c,t);
printf("----------Look at...----------\n");
for(k=0,p=t;p;p=p-next)//将链表中的值输出
printf(++k%15 ? "%5.1f" : "%5.1f\n",p-ave);
if(k%10)
printf("\n");
return 0;
}
运行样例:
这种题打字太多……
#includestdio.h
int main()
{
int a[10],i,j,t,k;
printf("请以次输入10个学生的成绩:");
for(i=0;i10;i++)scanf("%d",a[i]);
for(i=0;i9;i++)
{
k=i;
for(j=i;j10;j++)
if(a[j]a[k])k=j;
if(i!=k)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("由高到低排序输出成绩:\n");
for(i=0;i10;i++)
printf("%d\n",a[i]);
return 0;
}