结构经典例题,用上了typedef 再进行指针优化

来源:互联网 发布:广州知行通航 编辑:程序博客网 时间:2024/05/22 08:11
/*Description现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。编写一个函数input,用来输入一个学生的数据记录。编写一个函数print,打印一个学生的数据记录。在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100Input学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。Output每个学生的学号、姓名、三科成绩占一行,逗号分开。Sample Input2a100 zhblue 70 80 90b200 newsclan 90 85 75Sample Outputa100,zhblue,70,80,90b200,newsclan,90,85,75*/#include<stdio.h>typedef struct data{                //定义了一个类型,可以在下面的使用中直接用DataStru    char studentID[20];             //来代替所有的struct data;    char str[20];    int cj1;    int cj2;    int cj3;} DataStru;DataStru women[100];int main(){    DataStru print(DataStru temp);    int num,i,temp;    DataStru input(DataStru);    scanf("%d",&num);    for (i = 0;i < num;i ++){        women[i]=input(women[i]);    }    for (i = 0;i < num;i ++){        print(women[i]);        printf("\n");    }    return 0;}DataStru input(DataStru temp)       //为了方便用自定义的函数来进行输入{    scanf("%s ",&temp.studentID);    scanf("%s ",&temp.str);    scanf("%d ",&temp.cj1);    scanf("%d ",&temp.cj2);    scanf("%d",&temp.cj3);    return temp;}DataStru print(DataStru temp)       //用自定义的函数来进行输出{    printf("%s ",temp.studentID);    printf("%s ",temp.str);    printf("%d ",temp.cj1);    printf("%d ",temp.cj2);    printf("%d",temp.cj3);}

接下来要用指针进行优化。

//来吧用指针来走一遭。#include<stdio.h>typedef struct data{                //定义了一个类型,可以在下面的使用中直接用DataStru    char studentID[20];             //来代替所有的struct data;    char str[20];    int cj1;    int cj2;    int cj3;} DataStru;DataStru women[100];void print(DataStru *);             //声明可以在main外void input(DataStru *);             //要标明是结构指针int main(){    int num,i,temp;    scanf("%d",&num);    for (i = 0;i < num;i ++){        input(&women[i]);    }    for (i = 0;i < num;i ++){        print(&women[i]);        printf("\n");    }    return 0;}void input(DataStru *p)         //为了方便用自定义的函数来进行输入{                               //一系列用指针的华丽输入    scanf("%s ",&p->studentID);    scanf("%s ",&p->str);    scanf("%d ",&p->cj1);    scanf("%d ",&p->cj2);    scanf("%d",&p->cj3);}void print(DataStru *p)         //用自定义的函数来进行输出{                               //一系列用指针的华丽输出     printf("%s ",p->studentID);    printf("%s ",p->str);    printf("%d ",p->cj1);    printf("%d ",p->cj2);    printf("%d" ,p->cj3);}


原创粉丝点击