第十一次作业

1.通讯录排序:

#include<stdio.h>

struct birthday{

int year;

int month;

int day;

};

struct frineds{

char name[2];

struct birthday bd;

int number;

};

int main()

{

int i,j,n;

struct frineds a[2],x;

printf("Input n frineds:");

scanf("%d",&n);

printf("name birthday number ");

for(i=0;i<n;i++)

scanf("%s%d%d%d%d",&a[i].name,&a[i].bd.year,&a[i].bd.month,&a[i].bd.day,&a[i].number);

for(i=0;i<n;i++)

for(j=0;j<n-1;j++){

if(a[j].bd.year>a[j+1].bd.year){

x=a[j];

a[j]=a[j+1];

a[j+1]=x;

}

if(a[j].bd.year==a[j+1].bd.year){

if(a[j].bd.month>a[j+1].bd.month){

x=a[j];

a[j]=a[j+1];

a[j+1]=x;

}

if(a[j].bd.month==a[j+1].bd.month){

if(a[j].bd.day>a[j+1].bd.day){

x=a[j];

a[j]=a[j+1];

a[j+1]=x;

}

}

}

for(i=0;i<n;i++)

printf("%s %d %d %d %d ",a[i].name,a[i].bd.year,a[i].bd.month,a[i].bd.day,a[i].number);

return 0;

}

}

2.按等级统计学生成绩:

#include "stdio.h"

#include"string.h"

#define N 10

struct student{

int num;

char name[10];

int mark;

char grade;

};

int set_grade(int n,struct student a[])

{ int i,x=0;

  for(i=0;i<n;i++)

  { if(a[i].mark>=85&&a[i].mark<=100)

      {a[i].grade='A';

       continue;

       }

       if(a[i].mark>=70&&a[i].mark<=84)

       {a[i].grade='B';

          continue;

  }

   if(a[i].mark>=60&&a[i].mark<=69)

            {a[i].grade='C';

            continue;

     }

     a[i].grade='D';x++;

     

  }

return x;

}

void scanf_st(int n,struct student a[])

{int i;

  for(i=0;i<n;i++)

  { printf("enter No. %d student: ",i+1);

   scanf("%d%s%d",&a[i].num,a[i].name,&a[i].mark);

  }

}

void printf_st(int n,struct student a[])

{int i;

  for(i=0;i<n;i++)

  { printf("enter No. %d student: ",i+1);

   printf("%d %s %d %c ",a[i].num,a[i].name,a[i].mark,a[i].grade);

  }

}

int main()

{  struct student st[N];

   int count;

   scanf_st(N,st);

   count=set_grade(N,st);

   printf_st(N,st);

   

   printf("Not Pass num:%d ",count);

   

return 0;

}

 

3.心得体会:

宏定义也可以使用与其他的并无差异

struct嵌套比较难,有的要加地址符号需注意,a[i].bd.year这些嵌套要注意

等级设置中&&可以应用

比较判断要层层比较判断

转载于:https://www.cnblogs.com/hyx316/p/11080167.html

原文地址:https://www.cnblogs.com/twodog/p/12134797.html