以下代码是不用指针操作是达到的效果,但是要求用指针操作的方法来做的话应该怎么改?感谢大家的回答。
#include<stdio.h>
#define STU_NUM 30
void Readscore(long num[],float score[],int n);
void Aversumofscore(float score[],int n);
void Exc(long num[],float score[],int n);
int main()
{
int n;
float score[STU_NUM];
long num[STU_NUM];
printf("Input student number(n<30):\n");
scanf("%d",&n);
Readscore(num,score,n);
Aversumofscore(score,n);
Exc(num,score,n);
return 0;
}
void Readscore(long num[],float score[],int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d%f",&num[i],&score[i]);
}
}
void Aversumofscore(float score[],int n)
{
int i;
float average,sum=0;
for(i=0;i<n;i++)
{
sum=sum+score[i];
}
average=sum/n;
printf("sum=%.2f,aver=%.2f\n",sum,average);
}
void Exc(long num[],float score[],int n)
{
int i,j;
float temp1;
long temp2;
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(score[j]>score[i])
{
temp1=score[j];
score[j]=score[i];
score[i]=temp1;
temp2=num[j];
num[j]=num[i];
num[i]=temp2;
}
}
}
printf("按成绩从高到低排序后:\n");
for(i=0;i<n;i++)
{
printf("%d,%.1f\n",num[i],score[i]);
}
}
你把函数里的[]中括号改为星号*应该就可以了。