C语言结构体实现学生信息统计.doc
文本预览下载声明
C语言程序设计作业6
梁英华
200913201054
一.6.1和6.2放在一个程序里实现。
1.思路:
通过结构体和for()来实现学生数据的输入输出,即学号,名字,年龄和性别,并对相关选项判别。
2.源程序:
#includestdio.h
#include string.h
#define TIME 0%d\t%s\t%d\t%c\n /*自定义学生输入的格式*/
#define KAKA Num\tName\tAge\tGender\n /*自定义输出的格式*/
#define MILITO Boy\tGirl\tAge18\n /*自定义统计的输出格式*/
struct student /* 结构体声明学生统计要素*/
{
int num;
char name[10];
int age;
char sex;
};
main()
{
void input(struct student stu[] ); /* 初始化*/
void count(struct student stu[]);
struct student stu[4];
int i,j,boy=0,girl=0,c=0;
input(stu); /*调用学生的输入函数input*/
for(j=0;j1;j++)
{
printf(KAKA); /*调用自定义函数KAKA*/
}
for(i=0;i4;i++) /* 输出学生数据*/
{
printf(TIME,stu[i].num,stu[i].name,stu[i].age,stu[i].sex);
}
for(j=0;j1;j++)
{
printf(MILITO);
}
for(i=0;i4;i++) /*判别男女,以及年龄小于18的人数*/
{
if(stu[i].age18) c=c+1;
if(stu[i].sex==M) boy=boy+1;
else girl=girl+1;
}
printf(%d\t%d\t%d\n,boy,girl,c);
}
void input(struct student stu[]) /*学生数据输入的函数input*/
{
int i;
for(i=0;i4;i++)
{
scanf(%d,stu[i].num);
getchar();
scanf(%s,stu[i].name);
getchar();
scanf(%d,stu[i].age);
getchar();
scanf(%c,stu[i].sex);
getchar();
}
}
3.运行结果:
二.共用体的高低8位问题------6.3
解析:
十进制16961转换成二进制是 0100 0010 0100 0001
高8位:0100 0010 ,即66
低8位:0100 0001,即65.
源程序:
#include stdio.h
#define KAKA b[1]\tb[0]\n
union inter
{
short int a;
char b[2];
};
main()
{
union inter num;
printf(请输入整一个数:\n);
scanf(%d,num.a);
printf(KAKA);
printf(%d\t%d\n,num.b[1], num.b[0]);
}
运行结果:
显示全部