结构体数组里在创建的时候只有数组里的第一个元素可以用,在线等,急!!!!!!!!?是为什么呢?
答案:2 悬赏:80 手机版
解决时间 2021-02-19 09:32
- 提问者网友:流星是天使的眼泪
- 2021-02-18 23:22
#include#include#include#include#define N 1#define NULL 0#define false -1 #define M 2typedef struct student{ char name[20]; //姓名 int num; //学号 char subname[20][N]; //学科名称 float score[N]; //学科成绩 float credit[N]; //学科学分 //保存学生各学科成绩 float subsum; //专业学习换算后成绩 float scisum; //社会实践成绩 }; student add_data(){student a[M]; int i,j,k; float m=0,n=0; for(i=0;i<M;i++) { printf("输入第%d个学生基本信息:\n",i+1); printf("输入学生学号:"); scanf("%d",&a[i].num) ; printf("输入学生姓名:"); scanf("%s",&a[i].name[i]); for(j=0;j<N;j++) { printf("输入第%d门学科名称,成绩,学分:",j+1); scanf("%s",&a[i].subname[j]) ; scanf("%f",&a[i].score[j]) ; scanf("%f",&a[i].credit[j]); m+=a[i].score[j]*a[i].credit[j]; n+=a[i].credit[j]; a[i].subsum=m/n; } printf("输入学生社会实践分数:"); scanf("%f",&a[i].scisum); } printf("输入信息完成!!!\n"); return *a; }里面输出只有第一个,剩下的是乱码
最佳答案
- 五星知识达人网友:山有枢
- 2021-02-19 00:57
上面结构体定义的有问题。
typedef struct _student{
}student;
typedef struct _student{
}student;
全部回答
- 1楼网友:山君与见山
- 2021-02-19 01:10
你漏写了取地址符“&”,加上后就好了:
#include
struct student2
{
int number;
char name[10];
char sex;
float score[3];//3科成绩
};
int main()
{
int i,j;
struct student2 stu[4];//结构体数组
printf("input\n");
for(i=0;i<4;i++)
{
scanf("%d %s %c", &stu[i].number,&stu[i].name,&stu[i].sex);
printf("%d, %s, %c,",stu[i].number,stu[i].name,stu[i].sex);
}
return 0;
}输出如下:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯