定义⼀个结构体student,存储学⽣的学号、名字、性别和年龄,读⼊每个学⽣ 的所有信息,保。。。
定义⼀个结构体student,存储学⽣的学号、名字、性别和年龄,读⼊每个学⽣的所有信息,保存在结构体中,并输出。结构体student的定义如下:
struct student {
int num;
char name[20];
char sex;
int age;
};
本题要求使⽤指向结构体数组的指针进⾏输⼊和输出。
样例输⼊ :
魏星艳
3
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
样例输出 :
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
注意点(重点):当要连续输⼊⼀个字符串和⼀个字符时,输⼊前⼀个字符串后的空格既标识了前⼀个字符串输⼊结束,⼜被后⼀个字符所吸收,所以要在两者之间加⼀个getchar()来吸收空格 #include<stdio.h>
struct student {
int num;
索爱wt19ichar name[20];
char sex;
int age;
}stu[20],*p;
int main()
{
p=stu;
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%d",&(p+i)->num);
scanf("%s",&(p+i)->name);
getchar();//吸收空格
scanf("%c",&(p+i)->sex);
scanf("%d",&(p+i)->age);
}
for(i=0;i<n;++i)
{
printf("%d ",(p+i)->num);
碳税和碳关税的区别printf("%s ",(p+i)->name); printf("%c ",(p+i)->sex);
printf("%d\n",(p+i)->age);
}
return0;
}
然后没过多久我就发现不⽤这么⿇烦,直接在scanf⾥加空格即可。
结论:为了⽅便记忆,凡是在键盘上输⼊的空格、换⾏符都在scanf中表现出来。这样可以防⽌出现错误修改简化后的代码:山村幼儿园计划
#include<stdio.h>
struct student {胸片数据库
int num;
char name[20];
char sex;
int age;
}stu[20],*p;
int main()
{
p=stu;
int n,i,j;
scanf("%d\n",&n);
for(i=0;i<n;++i)
{
scanf("%d %s %c %d",&(p+i)->num,&(p+i)->name,&(p+i)->sex,&(p+i)->age);
西辽河}
for(i=0;i<n;++i)
{
printf("%d %s %c %d\n",(p+i)->num,(p+i)->name,(p+i)->sex,(p+i)->age);
}
return0;
}