第十一次作业

(5)

#include<stdio.h>
struct friends{
 /*姓名*/
  char name[10];
 /*电话号码*/
  int phone;
  /*生日*/
  int birthday;
};
struct birthday{
 int year;
 int month;
 int day;
};
   void sort(struct friends s[],int n)
   {int i,j;
   struct friends temp;
   for(i=1;i<n;i++)
   for(j=0;j<n-i;j++)
   if(s[j].birthday>s[j+1].birthday)
   {
 temp=s[j];
 s[j]=s[j+1];
 s[j+1]=temp;
   }
   }
int main(void)
{
   int i,n;
      struct friends friends[10];
      printf("请输入几个人:n");
      scanf("%d",&n);
      for(i=0;i<n;i++)
  /*输入n个人的通讯信息*/
         scanf("%s%d%d",friends[i].name,&friends[i].phone,&friends[i].birthday);
  /*按年龄从大到小排序*/
       sort(friends,n);
       for(i=0;i<n;i++)
  /*输出*/
           printf("%s%4d%4d\n",friends[i].name,friends[i].phone,friends[i].birthday);
     return 0;
}

(6)
#include<stdio.h>
#define N 10
int set_grade(struct students*p);
struct students{
 int num;
 char name[10];
 int score;
 char grade;
};
int set_grade(struct students *p,int n)
{
 int i,count=0;
 for(i=0;i<N;i++,p++)
 {
  if((*p).score<60)
  {(*p).grade='D';
  count++;
  }
  else if((*p).score>=60&&(*p).score<=69)
  {(*p).grade='C';
  count++;
  }
  else if((*p).score>=70&&(*p).score<=84)
  {(*p).grade='B';
  count++;
  }
  else
   (*p).grade='A';
  
 }
 return count;
}
int main()
{
 struct students st[10],*str;
 int i,n,count;
 str=st;
 scanf("%d\n",&n);
 for(i=0;i<n;i++){
  scanf("%d%s%d",&st[i].num,st[i].name,&st[i].score);
 }
 count=set_grade(str,n);
  printf("The count for failed (<60): %d\n", count); 
  printf("The grades:\n"); 
  for(i = 0; i < n; i++)     
   printf("%d %s %c\n", st[i].num, st[i].name, st[i].grade); 
  return 0;}
心得:根据这两道题自己在如何定义和使用结构数组,以及结构变量如何作为函数参数来使用还不太熟练,还需努力,下去多上机。
posted @ 2019-06-25 18:02  拉恒  阅读(148)  评论(0编辑  收藏  举报