第十一次作业

博客给出了两段C语言代码,一是通讯录排序,通过结构体嵌套存储信息并按生日排序;二是按等级统计学生成绩,根据成绩范围设置等级。此外,还分享了编写代码的心得体会,如宏定义使用、struct嵌套注意事项等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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\t birthday\t number\n");

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\t%d\t%d\t%d\t%d\n",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:\n",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:\n",i+1);

   printf("%d\t%s\t%d\t%c\n",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\n",count);

   

 

 

return 0;

}

 

 

3.心得体会:

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

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

等级设置中&&可以应用

比较判断要层层比较判断

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值