指针问题,求大佬帮助!!~

weixin_40469071 2018-03-25 01:11:18

#include <stdio.h>
#define N 3


int ScoreSort(int *score,int *pid) //按成绩由低到高排序
{
int i,j,t,s;

for (i=0;i<N-1;i++)
{

for(j=0;j<N-i-1;j++)
{

if(*(score+j)>*(score+j+1))
{
t=*(score+j);
*(score+j)=*(score+1+j);
*(score+1+j)=t;

s=*(pid+j);
*(pid+j)=*(pid+1+j);
*(pid+1+j)=s;
}

}

}

}



int ScoreCalculate(int *score,int *max,int *min,int *aver) //计算最高成绩、最低成绩及平均成绩
{
int total=0;
int i;

for(i=0;i<N;i++)
if(*(score+i)>*max)
*max=*(score+i);


for(i=0;i<N;i++)
if(*(score+i)<*min)
*min=*(score+i);


for(i=0;i<N;i++)
total=*(score+i)+total;

*aver=total/N;

}


int StudentSort(int *score,int *num) //计算分数在60~90分学生的人数
{
int i;

for(i=0;i<N;i++)
{
if(60<*(score+i)<90)
(*num)++;

}

}



int BinarySearch(int *score,int *pid,int id0) //通过折半查找,输出对应学号的成绩
{

int find=0,high=N,low=0,mid;

while(find==0&&(low<=high))
{
mid=(low+high)/2;

if(id0==*(pid+mid))
find=mid;

else
if(id0<*(pid+mid))
high=mid-1;

else
low=mid+1;
}

if(find==0)
printf("Not found.");
else
printf("Id:%d , Score:%d",*(pid+mid),*(score+mid));

}



int Graph(int *score,int *pid) //用图表方式输出成绩
{
int i,j;

for(i=0;i<35;i++)
printf("-");

printf("\n");

printf("|\tid\t|\tscore\t|\n");

for(i=0;i<35;i++)
printf("-");

printf("\n");

for(i=0;i<N;i++)
printf("|\t%d\t|\t%d\t|\n ",*pid++,*score++);


for(i=0;i<35;i++)
printf("-");

}


int main()
{
int *id,aid[N],*score,ascore[N];
int max=0, min=0, aver=0,num=0;
int i,id0;


for(i=0;i<N;i++)
{
printf("Enter the %dth student's id and score:\n",i+1);
scanf("%d%d",&aid[i],&ascore[i]);

}

id=aid ;
score=ascore ;

ScoreSort(score, id);
printf(" ID SCORE\n");
for(i=0;i<N;i++)
printf(" %d %d\n",*id++,*score++);


ScoreCalculate(score, &max, &min, &aver);
printf("\n The highest score: %d\n The lowest score: %d\n The average score: %d\n",max, min, aver);

StudentSort(score, &num);
printf(" The number of the students who scored 60~90: %d",num);

printf("\nEnter the ID you want to search:\n");
scanf("%d",&id0);
BinarySearch(score, id, id0);

printf("\n");

Graph(score, id);


}


...全文
346 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-03-25
  • 打赏
  • 举报
回复
百度搜 “C 指针传参”

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧