C语言及程序设计进阶例程-12 结构体成员的引用

贺老师教学链接  C语言及程序设计进阶 本课讲解

结构体作函数参数

#include <stdio.h>
struct Student
{
    int num;
    char name[20];
    char sex;
    int age;
    double score;
    char addr[30];
};

void print(struct Student s)
{
    printf("%d %s %c\n", s.num, s.name, s.sex);
    //可再加……
    return;
}

int main()
{
    struct Student student1,student2;
    struct Student *p_stu;
    student1.num=10001;
    student2.age=120;
    p_stu=&student2;
    print(student1);
    print(*p_stu);
    return 0;
}

当结构体成员又是结构体……

#include <stdio.h>
struct Date
{
    int month;
    int day;
    int year;
};
struct Student
{
    int num;
    char name[20];
    char sex;
    struct Date birthday;
    float score;
} student1,student2= {10002,"Wang Li",'f',5,23,1982,89.5};

int main( )
{
    student1=student2;
    printf("%d\n", student1.num);
    printf("%s\n", student1.name);
    printf("%c\n", student1.sex);
    printf("%d/%d/%d\n", student1.birthday.month, student1.birthday.day, student1.birthday.year);
    printf("%.1f\n", student1.score);
    return 0;
}

结构体的成员是数组

#include <stdio.h>
#include <string.h>
struct Student
{
    int num;
    char name[10];
    double score[3];
};
void print(struct Student);
int main( )
{
    struct Student stu;
    stu.num=12345;
    strcpy(stu.name, "Li Fung");
    stu.score[0]=67.5;
    stu.score[1]=89;
    stu.score[2]=78.5;
    print(stu);
    printf("%d %s ", stu.num, stu.name);
    printf("%.1f %.1f %.1f\n", stu.score[0], stu.score[1], stu.score[2]);
    return 0;
}

void print(struct Student s)
{
    printf("%d %s ", s.num, s.name);
    printf("%.1f %.1f %.1f\n", s.score[0], s.score[1], s.score[2]);
}

时间: 2024-10-26 17:33:52

C语言及程序设计进阶例程-12 结构体成员的引用的相关文章

C语言及程序设计进阶例程-13 结构体数组及其应用

贺老师教学链接  C语言及程序设计进阶 本课讲解 结构体数组应用举例 #include <stdio.h> #include <string.h> typedef struct { char name[20]; int count; } Person; int main( ) { Person person[3]= {{"Li",0},{"Zhang",0},{"Fun",0}}; int i,j; char name[2

C语言及程序设计进阶例程-15 指向结构体的指针

贺老师教学链接  C语言及程序设计进阶 本课讲解 指向结构体变量的指针的应用 #include <stdio.h> #include <string.h> struct Student { int num; char name[12]; char sex; float score; }; int main( ) { struct Student stu; stu.num=10301; strcpy(stu.name, "Wang Fun"); stu.sex='

C语言及程序设计进阶例程-11 体验结构体

贺老师教学链接  C语言及程序设计进阶 本课讲解 结构体类型变量的定义方法 #include <stdio.h> struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; int main( ) { struct Student student1, student2; printf("%d\n", sizeof(student1)); return 0

C语言及程序设计进阶例程-16 当结构体成员为指针

贺老师教学链接  C语言及程序设计进阶 本课讲解 有问题吗? #include <stdio.h> #include <string.h> struct Test { int x; char *str; }; int main() { struct Test a; a.x=100; char s[]="Hello"; strcpy(a.str,s); printf("%d %s\n", a.x, a.str); return 0; } 正解-

C语言及程序设计进阶例程-6 递归法问题求解

贺老师教学链接  C语言及程序设计进阶 本课讲解 求n! #include <stdio.h> long fact(int n) { long f; if (n==1) f=1; else f=n*fact(n-1); return f; } int main( ) { int n; long y; scanf("%d", &n); y=fact(n); printf("%ld\n", y); return 0; } 输入一个正整数n,反序输出其

C语言及程序设计进阶例程-39 银行储蓄系统(第六版)开发

[贺老师教学链接]   [C语言及程序设计进阶]   [本课讲解]  bank.h /*注意:运行前要建立空文件account.bin*/ #ifndef BANK_H_INCLUDED #define BANK_H_INCLUDED #include <malloc.h> typedef struct { int account; //账号 int password; //密码 char name[10]; //用户名 double balance; //账户余额 int status; /

C语言及程序设计进阶例程-24 查找问题及其求解

贺老师教学链接 C语言及程序设计进阶 本课讲解 顺序查找 #include <stdio.h> #define SIZE 10 int main( ) { int d[SIZE]={34, 43, 98, 72, 12, 47, 31, 43, 1, 78}; /*也可以通过键盘输入等方式给出数据*/ int i; int key; /*key表示待查找数据*/ int index=-1; /*用index表示查找结果--关键字key出现的位置*/ printf("Input a k

C语言及程序设计进阶例程-14 开发一个电子词典

贺老师教学链接  C语言及程序设计进阶 本课讲解 开发一个电子词典(下载词库点击打开链接) #include <stdio.h> #include<string.h> #include<stdlib.h> //定义词条类 typedef struct { char english[20]; char chinese[30]; char word_class[10]; } Word; Word words[8000]; //将词典数组设置成全局的结构体数组 int wor

C语言及程序设计进阶例程-27 贪心法问题求解

贺老师教学链接 C语言及程序设计进阶 本课讲解 找零钱问题及其求解 #include <stdio.h> int main ( ) { int money[10]={100,50,10,0}; /*最大面额的硬值面值排在最前面,将被优先处理*/ int x; /*找零金额*/ int i=0, n=0, m; scanf("%d", &x); /*输入找零金额*/ while(x>0 && money[i]!=0) /**/ { m=x/mon