1.给结构体变量赋值并输出其值
#include<stdio.h>
struct stu
{
long num;
char name[12];
float score;
}stu1,stu2;
main()
{
scanf("%ld%s%f",&stu1.num,&stu1.name,&stu1.score);
stu2=stu1;
printf("学号=%ld 姓名=%s 成绩=%5.1f\n",stu1.num,stu1.name,stu1.score);
printf("学号=%ld 姓名=%s 成绩=%5.1f\n",stu2.num,stu2.name,stu2.score);
}
2.一个学生具有学号、姓名、3门课程成绩共5个信息。定义结构体变量,调用函数求3门课程的平均分。
#include<stdio.h>
struct stu
{
long num;
char name[12];
int score[3];
};
float aver(struct stu ss)
{
float f;
f=(ss.score[0]+ss.score[1]+ss.score[2])/3.0;
return f;
}
main()
{
struct stu s;
float a;
scanf("%ld",&s.num);
gets(s.name);
scanf("%d%d%d",&s.score[0],&s.score[1],&s.score[2]);
a=aver(s);
printf("学号=%ld 姓名=%s 成绩=%d %d %d\n",s.num,s.name,s.score[0],s.score[1],s.score[2]);
printf("平均成绩=%5.1f\n",a);
}
3.对5个学生的信息按成绩进行降序排序
#include<stdio.h>
#define N 5
struct student
{
long num;
char name[12];
char sex;
int age;
float score;
}stud[N];
main()
{
int i,j;
struct student t;
for(i=0;i<N;i++)
{
scanf("ld",&stud[i].num);
gets(stud[i].name);
scanf("%c%d%f",&stud[i].sex,&stud[i].age,&stud[i].score);
}
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stud[i].score<stud[j].score)
{
t=stud[i];stud[i]=stud[j];stud[j]=t;
}
printf("Num Name Sex Age Score\n");
for(i=0;i<N;i++)
printf("%-101d%-12s%c %d %-5.1f\n",stud[i].num,stud[i].name,stud[i].sex,stud[i].age,stud[i].score);
}
4.用指针变量输出结构体
5.有5个学生的信息,每个学生的信息包括学号和成绩,编程序求成绩最高的学生的信息。
#include<stdio.h>
#include<stdlib.h>
main()
{
struct student
{
long num;
float score;
};
struct student s[5]={107153,95.5,107154,70.0,107151,98.0,107155,55.0,107159,75.0
};
struct student *ps;
int i;
ps=(struct student*)malloc(sizeof(struct student));
ps->num=s[0].score;
ps->score=s[0].score;
for(i=1;i<5;i++)
if(s[i].score>ps->score)
{
ps->num=s[i].num;ps->score=s[i].score;
}
printf("最高成绩学生:学号=%1d成绩=%5.1f\n",ps->num,ps->score);
free(ps);
}
6.用动态数组产生n个[40,100]的随机数,并采用冒泡排序法排序
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int i,j,t,*pa,n;
scanf("%d",&n);
srand(time(0));
pa=(int *)calloc(n,sizeof(int));
for(i=0;i<n;i++)
{
*(pa+i)=rand()%61+40;
printf("%5d",*(pa+i));
}
printf("\n");
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(*(pa+j)>*(pa+j+1))
{
t=*(pa+j);*(pa+j)=*(pa+j+1);*(pa+j+1)=t;
}
for(i=0;i<n;i++)
printf("%5d",*(pa+i));
printf("\n");
free(pa);
}