问题描述
- 求修改!!帮忙看看那里错了谢谢
-
#include
#include
#define TER sizeof(STD);
typedef
struct
{
char name[20];
int num;
double score;
struct *next;
}STD;
STD *cha(); //创建链表
void *print(STD*head); //打印链表
int n;void main()
{
STD *sub;
sub=cha();
print(sub);
}
STD * cha()
{
STD *head;
STD *p1,*p2;p1 = p2 =(STD*)malloc(TER); printf("输入姓名:"); scanf("%s",p1->name); printf("输入学号"); scnaf("%d",p1->num); printf("输入成绩:"); scanf("%lf",p1->score); head=NULL; n=0; while(p1->num!=0) { n++; if(n == 1) { head=p1; } else { p2->next=p1; } } p2->next=NULL; return head;
}
void print(STD*head)
{
STD *p;
printf("一共%d人",d);
*P=head;
if(head)
{
do
{
printf("姓名是%s的成绩是%d:",p->name,p->score);
p->next;
}while(p!=NULL);
}
}
解决方案
错误有点多哦.....有些都看不懂你要干什么:
1、头文件包含看不到是什么
#inclued <stdio.h>
#include<stdlib.h>
2、先取名字,再用类型
typedef
struct STDSTRU
{
char name[20];
int num;
double score;
STDSTRU *next;
}STD;
3、函数名写错了
printf("输入姓名:");
scanf("%s",p1->name);
printf("输入学号");
scnaf("%d",p1->num);//scanf(),函数名写错了
printf("输入成绩:");
scanf("%lf",p1->score);
4、变量名大小写混乱
5、未定义变量
STD p;
printf("一共%d人",d);//后面的参数d没定义,不知道要输出什么
*P=head;//定义的小写,这里应该是小写p=head,且指针赋值不用带 * 号,号就是解引用了
这些都是语法错误。。可能还有别的语法错误,我没编译。
解决方案二:
这个有点。。。 感觉这个代码是不是纯手工啊?!你没有编译测试过吗!?
一楼提的很好,还有那个
scanf的参数没有加取址符的 num score变量的。