69,382
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct student
{
char *ID,*name;
float CP_mark,MATH_mark,E_mark,PHY_mark;
student *next;
};
student *head,*p,*q;
student * create()
{
char x1[10],x2[10];
head = q =NULL;
printf("分别输入3个学生的姓名、学号、计算机成绩、");
printf("数学成绩、英语成绩、物理成绩!(以空格作间隔输入)\n");
for(int i=0; i<2; i++)
{
p = (student*)malloc(sizeof(student));
p->ID = x1;
p->name = x2;
printf("第%d个学生\n",i+1);
scanf("%s%s",p->name,p->ID);
getchar();
scanf("%f%f%f%f",&p->CP_mark,&p->MATH_mark,&p->E_mark,&p->PHY_mark);
p->next = q;
head = p;
q = p;
}
return head;
}
int main(int argc, char* argv[])
{
int flag;
head = create();
printf("%s",head->name);// 这里怎么不执行呢?
}
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct student
{
char *ID,*name;
float CP_mark,MATH_mark,E_mark,PHY_mark;
student *next;
};
student *head,*p,*q;
char x1[10],x2[10]; //这样就不会被释放了。
student * create()
{
head = q =NULL;
printf("分别输入3个学生的姓名、学号、计算机成绩、");
printf("数学成绩、英语成绩、物理成绩!(以空格作间隔输入)\n");
for(int i=0; i<2; i++)
{
p = (student*)malloc(sizeof(student));
p->ID = x1;
p->name = x2;
printf("第%d个学生\n",i+1);
scanf("%s%s",p->name,p->ID);
getchar();
scanf("%f%f%f%f",&p->CP_mark,&p->MATH_mark,&p->E_mark,&p->PHY_mark);
p->next = q;
head = p;
q = p;
}
return head;
}
int main(int argc, char* argv[])
{
int flag;
head = create();
printf("%s",head->name);// 这里怎么不执行呢?
}
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct student
{
char *ID,*name;
float CP_mark,MATH_mark,E_mark,PHY_mark;
student *next;
};
student *head;
student * create()
{
char x1[10],x2[10];
student *p,*q;
head = q =NULL;
printf("分别输入3个学生的姓名、学号、计算机成绩、");
printf("数学成绩、英语成绩、物理成绩!(以空格作间隔输入)\n");
for(int i=0; i<N; i++)
{
p = (student*)malloc(sizeof(student));
p->ID = new char [20];
p->name = new char [20];
p->ID = x1;
p->name = x2;
printf("第%d个学生\n",i+1);
scanf("%s%s",p->name,p->ID);
getchar();
scanf("%f%f%f%f",&p->CP_mark,&p->MATH_mark,&p->E_mark,&p->PHY_mark);
p->next = q;
head = p;
q = p;
}
return head;
}
int main(int argc, char* argv[])
{
int flag;
head = create();
printf("%s",head->name);
return 0;
}
scanf("%s%s;,x1,x2);
student * create()
{
char x1[10],x2[10];
head = q =NULL;
printf("分别输入3个学生的姓名、学号、计算机成绩、");
printf("数学成绩、英语成绩、物理成绩!(以空格作间隔输入)\n");
scanf("%s%s;,x1,x2);//你忘记读了
for(int i=0; i<2; i++)
{
p = (student*)malloc(sizeof(student));
p->ID = x1;
p->name = x2;
printf("第%d个学生\n",i+1);
scanf("%s%s",p->name,p->ID);
getchar();
scanf("%f%f%f%f",&p->CP_mark,&p->MATH_mark,&p->E_mark,&p->PHY_mark);
p->next = q;
head = p;
q = p;
}
return head;
}
#define N 3
struct student
{
char *ID,*name;
float CP_mark,MATH_mark,E_mark,PHY_mark;
student *next;
};
student *head,*p,*q;
student * create()
{
char x1[10],x2[10];
head = q =NULL;
printf("分别输入3个学生的姓名、学号、计算机成绩、");
printf("数学成绩、英语成绩、物理成绩!(以空格作间隔输入)\n");
for(int i=0; i<3; i++) // 改成3,不是要输入3个学生的数据吗
{
p = (student*)malloc(sizeof(student));
p->ID = x1;
p->name = x2;
printf("第%d个学生\n",i+1);
scanf("%s%s",p->name,p->ID);
getchar();
scanf("%f%f%f%f",&p->CP_mark,&p->MATH_mark,&p->E_mark,&p->PHY_mark);
p->next = q;
head = p;
q = p;
}
return head;
}
int main(int argc, char* argv[])
{
int flag;
head = create();
printf("%s",head->name);// 这里是可以执行的
}