Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18067
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-04 10:14
文章分类
文章存档

2013年(12)

我的朋友

分类: C/C++

2013-04-14 20:21:46




//task 4
#include

struct person{//person 结构体
    char firstname[30];//名
 char lastname[30];//姓
 char midname[30];//中间的名
};
struct task4{
    char snum[30];//社会保障号
 struct person name;
};

void get(struct task4 * pperson);//获取输入
void print(struct task4 * pperson);//输出结果

int main(void)
{
    struct task4 per[5];

 get(per);
 print(per);
   
 return 0;
}

void get(struct task4 * pperson)
{
 int i=0;
    for (i=0;i<5;i++)
 {
  printf("enter %d people's snum:\n",i+1);
  gets(pperson->snum);
  puts("enter first name:");
  gets(pperson->name.firstname);
  puts("enter last name:");
  gets(pperson->name.lastname);
  puts("enter middle name:");
  gets(pperson++->name.midname);

 }
}

void print(struct task4 * pperson)
{
    int i=0;
 for(i=0;i<5;i++)
 {
     printf("%d people:\n",i+1);
  printf("%s.%s",pperson->name.firstname,pperson->name.lastname);
  if(pperson->snum[0]!='\0'&&pperson->name.midname[0]!=NULL)//判断
   printf(" %c. - %s\n",pperson->name.midname[0],pperson++->snum);
  else
   printf(" - %s\n",pperson++->snum);
 }
}




//task 5
#include

struct name{
    char firstname[20];
 char lastname[20];
};

struct student{
    struct name sname;
 float grade[3];
 float average;
};

#define CSIZE 1

void get(struct student * stu);//获取
void print(struct student * stu);//打印每个结构体信息
void ave(struct student *stu);//计算每个结构体平均分
void printave(struct student *stu);//输出每个数据成员的班级平均分

int main(void)
{
    struct student stu[CSIZE];

 get(stu);
 ave(stu);
 print(stu);
 printave(stu);

 return 0;
}
void get(struct student * stu)
{
    int i;
 for(i=0;i  {
     printf("enter %d student information:\n",i+1);
  fflush(stdin);//刷新缓冲区
  puts("first name:");
  gets(stu->sname.firstname);
  puts("last name:");
  gets(stu->sname.lastname);
  puts("grade 1 :");
  scanf("%f",&stu->grade[0]);
  puts("grade 2 :");
  scanf("%f",&stu->grade[1]);
  puts("grade 3 :");
  scanf("%f",&stu->grade[2]);
 }
}

void print(struct student * stu)
{
    int i;
 printf("  student's information\n");
 printf("firstname  lastname  grade 1  grade 2  grade 3  average\n");
 for(i=0;i  {
  printf("%s     %s  %.2f   %.2f   %.2f   %.2f\n",stu->sname.firstname,stu->sname.lastname,stu->grade[0],stu->grade[1],stu->grade[2],stu->average);
  stu++;
 }
}

void ave(struct student * stu)
{
    int i;
 for(i=0;i  {
  stu->average=(stu->grade[0]+stu->grade[1]+stu++->grade[2])/3;
 }
}

void printave(struct student *stu)
{
    int i;

 for(i=0;i<3;i++)
 {
  printf("average :grade %d %.2f\n",i+1,(stu++->grade[i]+stu++->grade[i]+stu->grade[i])/3);
  stu-=2;
 }
}

阅读(174) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:unit 14

给主人留下些什么吧!~~