c语言:读入两个学生的情况存入结构数组。
答案:4 信息版本:手机版
解决时间 2019-10-02 07:01
已解决
2019-10-01 20:38
读入两个学生的情况存入结构数组,每个学生的情况包括:姓名、学好、性别。若是男生,则还登记视力是否正常(正常Y,不正常N),对女生则还登记身高和体重
最佳答案
2019-10-01 21:51
#include
#include
struct student
{char name[32];
int number;
char sex;
char eye;
float weight;
float height;
};
int main()
{struct student stu[2];
int i;
for(i=0;i<2;i++)
{printf("input name:\n");
scanf("%s",stu[i].name);
printf("input number:\n");
scanf("%d",&stu[i].number);
printf("input sex:\n");
scanf("\n%c",&stu[i].sex);
if(stu[i].sex=='w')
{printf("input weight:\n");
scanf("%f",&stu[i].weight);
printf("input height:\n");
scanf("%f",&stu[i].height);
}
else
{printf("input eye:\n");
scanf("\n%c",&stu[i].eye);
}
}
system("CLS");
for(i=0;i<2;i++)
{if(stu[i].sex=='w')
printf("姓名:%s\n学号:%d\n性别:%c\n身高:%.2f\n体重:%.2f\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].height,stu[i].weight);
else
printf("姓名:%s\n学号:%d\n性别:%c\n视力:%c\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].eye);
printf("按回车键查看下一个学生信息!\n");
system("PAUSE");
system("CLS");
}
return 0;
}
我调试好了 拿出看看吧
全部回答
1楼
2019-10-01 23:32
你好!
是从文件读入数据吗,还是键盘输入数据?
2楼
2019-10-01 23:04
typedef struct{
int left_pos; //左边栈顶,靠0方向
int right_pos; //右边栈顶,靠maxsize-1方向
int split_pos; //左右栈分割位置
int stack[maxsize];
}doublestack;
初始的时候,为了能够高效方便的让2个栈进数据,建议把split_pos设置为maxsize/2,也即中间,并初始化 left_pos,right_pos也为maxsize/2;
栈空判断left_pos==split_pos,则左栈空;right_pos==split_pos右栈空
栈非空left_pos < split_pos;right_pos > split_pos
进栈操作:
左:如果left_pos为0;right_pos不为maxsize-1;则把栈所有数据向右移(maxsize-right_pos)/2;
为什么不移1,?是为了效率考虑,比如只移1的话,左边又有一个元素进栈,则还要以一次,效率低下。
右:同左边相同的考虑方案,
3楼
2019-10-01 22:37
FILE *fp;
printf("请输入文件名,路径:"); //打开txt文件
scanf("%s",filename);
if((fp = fopen(filename,"r")) == NULL)
{
fprintf(stderr,"%s 文件打开失败!\n",filename);
exit(0); }
for(int i=0; i<12; i++) //循环读取
{
fscanf(fp,"%s%s%f",StuInfo[i].ID,StuInfo[i].name,StuInfo[i].score);
printf("%s\t%s\t%f\n",StuInfo[i].ID,StuInfo[i].name,StuInfo[i].score);
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯