第十一次作业

1、实验要求:建立一个通信录,通信录的结构体记录包括:姓名、生日、电话号码;其中生日又包括三项:年、月、日。编写程序,定义一个嵌套的结构类型,输入n(n<10)个联系人的信息,再按他们的年龄大小的顺序依次输出其信息。

#include"stdio.h"
struct student{
int num;
char name[10];
char grade;
int Achievements;
};
char set_grade(int x);
int main(void)
{
struct student a[50];
int n,i,count=0;
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Tnput the info of No.%d:\n",i+1);
printf("number");
scanf("%d",&a[i].num);
printf("name");
scanf("%s",a[i].name);
printf("Achievements");
scanf("%d",&a[i].Achievements);
a[i].grade=set_grade(a[i].Achievements);
printf("%c\n",a[i].grade);
if(a[i].Achievements<60)
count++;}
printf("count %d\n",count);
return 0;}
char set_grade(int x)
{

if(x>=85&&x<=100)
return 'A';
if(x>=70&&x<=84)
return 'B';
if(x>=60&&x<=69)
return 'C';
if(x>=0&&x<=59)
return 'D';
return x;
}

1、实验要求:建立一个通信录,通信录的结构体记录包括:姓名、生日、电话号码;其中生日又包括三项:年、月、日。编写程序,定义一个嵌套的结构类型,输入n(n<10)个联系人的信息,再按他们的年龄大小的顺序依次输出其信息。

 #include"stdio.h"
struct birthday{
int year;
int month;
int day;
};
struct friends{
int num;
struct birthday birth;
char name[10];
};
int main(void)
{
struct friends a[10];
int n,i,t,j;
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Tnput the info of No.%d:\n",i+1);
printf("name");
scanf("%s",a[i].name);
printf("year");
scanf("%d",&a[i].birth.year);
printf("month");
scanf("%d",&a[i].birth.month);
printf("day");
scanf("%d",&a[i].birth.day);
printf("number");
scanf("%d",&a[i].num);
}
for(i=1;i<n;i++){
for(j=0;j<n-1;j++){
if(a[j].birth.year<a[j+1].birth.year){
t=a[j];
    a[j]=a[j+1];
a[j+1]=t;}
if(a[j].birth.year==a[j+1].birth.year){
if(a[j].birth.month<a[j+1].birth.month){
t=a[j];
    a[j]=a[j+1];
a[j+1]=t;}}
if(a[j].birth.month==a[j+1].birth.month){
if(a[j].birth.day<a[j+1].birth.day){
t=a[j];
    a[j]=a[j+1];
a[j+1]=t;}}
printf("%c%d%d%d%d\n",a[i].name,a[i].birth,a[i].birth.year,a[i].birth.month,a[i].birth.day);}}
return 0;
}

心得:这次的题目让我对结构体有了一个深刻的认识。

posted on 2019-06-25 18:25  黄振古  阅读(193)  评论(0编辑  收藏  举报

导航