1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言 读入两个数组 c语言:读入两个学生的情况存入结构数组。

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

时间:2021-08-01 14:19:17

相关推荐

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

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

答案:4信息版本:手机版

解决时间 -10-02 07:01

已解决

-10-01 20:38

读入两个学生的情况存入结构数组,每个学生的情况包括:姓名、学好、性别。若是男生,则还登记视力是否正常(正常Y,不正常N),对女生则还登记身高和体重

最佳答案

-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楼

-10-01 23:32

你好!

是从文件读入数据吗,还是键盘输入数据?

2楼

-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楼

-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(inti=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);

}

我要举报

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

大家都在看

推荐资讯

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。