永发信息网

结构体数组里在创建的时候只有数组里的第一个元素可以用,在线等,急!!!!!!!!?是为什么呢?

答案: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;
全部回答
  • 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; }输出如下:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯