本身想创建一个链表。
包含三个元素一个指针的,但是结果很迷,瞬间麻爪了。
#include<stdio.h>
#include<stdlib.h>
struct a
{
char b[10];//姓名
int c;//号码
float d;//得分
struct a * e;//指针位置
};
int main()
{
struct a * head = (struct a *)malloc(sizeof(struct a));
head -> e = NULL;
struct a * i ;
i = head;
int f;
for( f=0; f<3; f++)
{
struct a * g = (struct a *)malloc(sizeof(struct a));
printf("请输入姓名:");
scanf("%s",&g->b);
printf("请输入号码:");
scanf("%d",&g->c);
printf("请输入得分:");
scanf("%f",&g->d);
printf("\n");
i->e = g;
g->e = NULL;
i = g;
};
printf("保存结果:\n");
i=head;
while(i->e != NULL)
{
i = i->e;
printf("姓名为:%s\n",i->b);
printf("得分为:%f\n",i->c);
printf("号码为:%d\n",i->d);
printf("指针指向:%d\n",i->e);
printf("\n");
}
printf("Hello world!");
return 0;
}
笑死,上一个问题怎么没了
我看了半天,结果你给删了
你输出的时候c和d的类型写反了,导致读到的都是乱码
有帮助望采纳
#include<stdio.h>
#include<stdlib.h>
struct a
{
char b[10];//姓名
int c;//号码
float d;//得分
struct a * e;//指针位置
};
int main()
{
struct a * h = (struct a *)malloc(sizeof(struct a));
h -> e = NULL;
struct a * i ;
i = h;
int f;
for( f=0; f<3; f++)
{
struct a * g = (struct a *)malloc(sizeof(struct a));
printf("请输入姓名:");
scanf("%s",&(g->b));
printf("请输入号码:");
scanf("%d",&(g->c));
printf("请输入得分:");
scanf("%f",&(g->d));
printf("\n");
i->e = g;
g->e = NULL;
i = g;
};
printf("保存结果:\n");
i=h;
while(i->e != NULL)
{
i = i->e;
printf("姓名为:%s\n",i->b);
printf("号码为:%d\n",i->c);
printf("得分为:%f\n",i->d);
printf("指针指向:%d\n",i->e);
printf("\n");
}
printf("Hello world!");
return 0;
}
供参考:
#include<stdio.h>
#include<stdlib.h>
struct a
{
char b[10];//姓名
int c;//号码
float d;//得分
struct a* e;//指针位置
};
int main()
{
struct a* h = (struct a*)malloc(sizeof(struct a));
h->e = NULL;
struct a* i;
i = h;
int f;
for (f = 0; f < 3; f++)
{
struct a* g = (struct a*)malloc(sizeof(struct a));
printf("请输入姓名:");
scanf("%s", g->b);//scanf("%s", &g->b);
printf("请输入号码:");
scanf("%d", &g->c);
printf("请输入得分:");
scanf("%f", &g->d);
printf("\n");
i->e = g;
g->e = NULL;
i = g;
};
printf("保存结果:\n");
i = h;
while (i->e != NULL)
{
i = i->e;
printf("姓名为:%s\n", i->b);
printf("得分为:%f\n", i->d);//printf("得分为:%f\n", i->c);
printf("号码为:%d\n", i->c);//printf("号码为:%d\n", i->d);
printf("指针指向:0x%p\n", i->e);//printf("指针指向:%d\n", i->e);
printf("\n");
}
printf("Hello world!");
return 0;
}