虾饺爱下棋 2023-01-09 16:00 采纳率: 100%
浏览 25
已结题

C语言牛牛的数,结构体练习题

问题遇到的现象和发生背景

牛客的结构体练习题

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include <stdio.h>
#include <malloc.h>
struct Book
{
    char str[100];
    float p;
};
int main(void)
{
    struct Book* parr;
    int n, i, j;
    struct Book t;
    scanf("%d", &n);
    parr = (struct Book*)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%s", parr[i].str);
        scanf("%f", &parr[i].p);
    }
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            if (parr[j].p > parr[j + 1].p)
            {
                t = parr[j];
                parr[j] = parr[j + 1];
                parr[j + 1] = t;
            }
        }
    }
    for (i = 0; i < n; i++)
        printf("%s\n", parr[i].str);
    return 0;
}

运行结果及详细报错内容

img

img


它说我这个例子报错,但我用vs2022这个例子是可以写出来的,我不太清楚错误在哪里?

  • 写回答

3条回答 默认 最新

  • heart_6662 2023-01-09 16:09
    关注

    望采纳!!!点击回答右侧采纳即可!!!!我没有发现报错的地方。可能是粘贴的代码有点问题。

    如果您在编译运行该代码时报错,可以尝试以下方法:

    检查每一个符号是否使用正确,尤其注意结构体中的成员名字是否写错。
    在输入 n 的值时,确保 n 是一个有效的数字。
    在使用 malloc 函数时,注意按照结构体的大小申请内存。例如,parr = (struct Book*)malloc(n * sizeof(int)); 中,应该把 int 替换为 struct Book。
    在编译时,检查是否有没有包含必要的头文件,例如 stdio.h 和 malloc.h。
    如果在编译时提示找不到函数或符号的错误,可能是因为没有链接必要的库文件。可以尝试添加链接参数,例如 -lm。
    如果仍然无法解决问题,可以尝试打印一些调试信息,帮助定位问题。例如,在代码中添加 printf 函数来打印变量的值,或者使用调试器来跟踪代码的执行流程。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月9日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加