第十一次作业
1.建立一个通信录,通信录的结构体记录包括:姓名、生日、电话号码;其中生日又包括三项:年、月、日。编写程序,定义一个嵌套的结构类型,输入n(n<10)个联系人的信息,再按他们的年龄大小的顺序依次输出其信息。
#include<stdio.h>
struct friends{
char name[10];
int birth;
char phone[20];
}p[10],t;
int main(){
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %d %s",p[i].name,&p[i].birth,p[i].phone);
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(p[j].birth>p[j+1].birth){
t=p[j];p[j]=p[j+1];p[j+1]=t;
}
for(i=0;i<n;i++)
printf("%s %d %s\n",p[i].name,p[i].birth,p[i].phone);
return 0;
}
2.输入10个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名成绩和等级,要求定义和调用函数set_grade(),根据学生成绩设置其等级,并统计不及格人数
#include <stdio.h>
#define N 10
#define N 10
struct Student {
char num[15];
char name[15];
int score;
char grade;
};
char num[15];
char name[15];
int score;
char grade;
};
void set_grade (struct Student *p, int n, int *f);
int main(void)
{
int i, n;
int fail = 0;
struct Student s[N];
printf("请输入学生人数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("学生%d信息\n",i+1);
printf("学号:");
scanf("%s",s[i].num);
printf("姓名:");
scanf("%s",s[i].name);
printf("成绩:");
scanf("%d",&s[i].score);
}
set_grade (s,n,&fail);
printf("学生成绩信息\n");
printf("姓名\t等级\n");
for (i=0;i<n;i++)
{
printf("%s\t",s[i].name);
printf("%c\n",s[i].grade);
}
printf("不及格人数:%d\n",fail);
return 0;
}
{
int i, n;
int fail = 0;
struct Student s[N];
printf("请输入学生人数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("学生%d信息\n",i+1);
printf("学号:");
scanf("%s",s[i].num);
printf("姓名:");
scanf("%s",s[i].name);
printf("成绩:");
scanf("%d",&s[i].score);
}
set_grade (s,n,&fail);
printf("学生成绩信息\n");
printf("姓名\t等级\n");
for (i=0;i<n;i++)
{
printf("%s\t",s[i].name);
printf("%c\n",s[i].grade);
}
printf("不及格人数:%d\n",fail);
return 0;
}
void set_grade (struct Student *p, int n, int *f)
{
int i;
*f = 0;
for (i=0;i<n;i++,p++)
{
if (p->score>=85&&p->score<=100)
{
p->grade = 'A';
}
else if (p->score>=70&&p->score<=84)
{
p->grade = 'B';
}
else if (p->score>=60&&p->score<=69)
{
p->grade = 'C';
}
else
{
p->grade = 'D';
(*f)++;
}
}
}
{
int i;
*f = 0;
for (i=0;i<n;i++,p++)
{
if (p->score>=85&&p->score<=100)
{
p->grade = 'A';
}
else if (p->score>=70&&p->score<=84)
{
p->grade = 'B';
}
else if (p->score>=60&&p->score<=69)
{
p->grade = 'C';
}
else
{
p->grade = 'D';
(*f)++;
}
}
}