动态构造学生信息结构体数组,弄了好久了,实在弄不出来了,特来求教。
#include <stdio.h>#include <malloc.h>
struct Student{
int age;
char name[100];
float score;
};//定义结构体
void Input(struct Student *pst,int len){
int i;
for(i=0;i<len;i++)
{ printf("请输入学生姓名:\n");printf("name=");
scanf("%s",pst->name);
printf("请输入学生的年龄:\n");printf("age=");
scanf("%d",&pst->age);
printf("请输入学生的成绩:\n");printf("score=");
scanf("%f",&pst->score);
}}
void output(struct Student *psr,int len ){
int i,j;
struct Student t;
for(i=0;i<len-1;i++)
{for(j=0;j<len-1-i;j++)
if(*psr[j].score<*psr[j+1].score)
{t=*psr[j+1];
*psr[j+1]=*psr[j];
*psr[j]=t;}}
for(i=0;i<len;i++)
{ printf("name=%s",psr->name[i]);
printf("age=%d",psr->age);
printf("score=%f",psr->score);}}
void main(){
int len;
printf("请输入学生个数:\n");printf("len=");
scanf("%d",&len);
struct Student *pstu;
pstu=(struct Student *)malloc(len * sizeof(struct Student));
Input(&pstu,len);
output(&pstu,len);
}
这是我自己一直靠直觉写的(别笑)弄了好久了,因为我函数和指针都没学好,所以中间出错(非法间接),我实在不知道怎么改了,大神帮帮忙嘛,把我这个改成对的。也许错误特别多(别笑),我也就不害羞了。求帮忙哦。如果已经实在错的一沓糊涂,那就帮忙写个嘛不过要用函数哦。我好对比下。