c语言 读入两个数组,c语言:读入两个学生的情况存入结构数组。

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);

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值