▼_,▼ 2021-08-23 16:12 采纳率: 100%
浏览 37
已结题

为啥char结果对,但是int和float结果就不对??

本身想创建一个链表。
包含三个元素一个指针的,但是结果很迷,瞬间麻爪了。


#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;
}

img

  • 写回答

2条回答 默认 最新

  • Pliosauroidea 2021-08-23 16:13
    关注

    笑死,上一个问题怎么没了
    我看了半天,结果你给删了
    你输出的时候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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月23日

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line