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;
}
}