高分求助,一个C语言结构体程序的问题!

高分求助,一个C语言结构体程序的问题!,第1张

#include <stdioh>

#include <stringh>

struct student {

long sno;

char name[10];

float score[3];

};

void fun(struct student a[], int n) { // 按name排序

struct student / __1__ / t; //声明一个结构体的临时变量

int i, j;

for(i = 0; i < n - 1;/ __2__ / i++)

for(j = i + 1; j < n; j++)

if(strcmp(a[i]name,a[j]name) > 0) { // 升排序

t = a[i]; a[i] = a[j]; a[j] = t;

}

}

int main() {

struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78},

{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}}; // s是数组

int i, j;

printf("\n\nThe original data :\n\n");

for (j=0; j<4; j++) {

printf("\nNo: %ld Name: %-8s Scores: ",s[j]sno, s[j]name);

for (i=0; i<3; i++) printf("%62f ", s[j]score[i]);

printf("\n");

}

fun(s, 4);

printf("\n\nThe data after sorting :\n\n");

for (j=0; j<4; j++) {

printf("\nNo: %ld Name: %-8s Scores: ",s[j]sno, s[j]name);

for (i=0; i<3; i++) printf("%62f ", s[j]score[i]);

printf("\n");

}

return 0;

}

union

un

{

int

i;

double

y;

};

确实是取最大的8

所以只将char部分注释掉得到8

char

a[10];单独页确实是10

但是结构体的sizeof有个存储空间对齐的问题,

char

a[10];union

un

b;两个a本来是10个字符,但是b他一个就是8,那整个就要和8对齐,10个有8个可以对齐,剩下两个后面只好加6个空补足了和8对齐了

通俗地说,C语言的结构体是一种复合数据类型。举一个应用C语言结构体编程的例子,例如:编制一个人员通讯录程序。一般来说,通常通讯录信息包含如下内容:姓名、性别、地址、座机电话、手机号码、邮政编码。那么像这种情况下,如果使用 C 语言提供的结构体定义数据类型就很方便了。

#define NAMELEN 20 / 姓名长度,可自行修改 /

#define SEXLEN 4 / 性别 /

#define ADDRESSLEN 40 / 通讯地址长度,可自行修改 /

#define ZUOJI_LEN 20 / 座机电话长度,可自行修改 /

#define SHOUJI_LEN 11 / 手机长度为 11 位 /

#define YOU_BIAN_LEN 6 / 邮编长度,一般为 6 /

struct tong_xun_lu / 定义一个名为 tong_xun_lu 的结构体 /

{

unsigned char name[NAMELEN] ;

unsigned char sex[SEXLEN] ;

unsigned char address[ADDRESSLEN] ;

unsigned char zuoji_phone_number[ZUOJI_LEN] ;

unsigned char shouji_phone_number[SHOUJI_LEN] ;

unsigned char you_bian[YOU_BIAN_LEN] ;

} ;

struct tong_xun_lu my_address[200] ; / 定义一个最多可以存放 200 个人的通讯录的结构数组 /

以上就是关于高分求助,一个C语言结构体程序的问题!全部的内容,包括:高分求助,一个C语言结构体程序的问题!、C语言程序联合和结构体的问题、C语言结构体等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9328898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存