/*Description
现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。
编写一个函数input,用来输入一个学生的数据记录。
编写一个函数print,打印一个学生的数据记录。
在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100
Input
学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。
Output
每个学生的学号、姓名、三科成绩占一行,逗号分开。
Sample Input
2
a100 zhblue 70 80 90
b200 newsclan 90 85 75
Sample Output
a100,zhblue,70,80,90
b200,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);
}