零工资下定决心转行 2024-04-17 17:50 采纳率: 0%
浏览 2

关于结构体struct(相关搜索:结构体)

img


这里是为什么错了呀,看了好半天了,跟别人运行正常的程序也对照了好一会,还是没有找出错误

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-17 17:50
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的图片中,我看到一个C语言程序的片段,它定义了一个结构体student并尝试创建一个结构体数组。然而,这个程序确实存在一些错误。让我们一步步分析并修复这些错误。

    首先,这里有一个语法错误。在声明结构体变量时,类型名后面不应该有分号。这是正确的结构体定义:

    typedef struct student {
        char name[20];
        int score;
    } Student; // 注意这里没有分号
    

    接下来,在创建结构体数组时,您忘记了指定数组的大小。这会导致编译错误,因为编译器不知道应该为数组分配多少内存。修正后的代码应包含数组大小:

    Student students[5]; // 假设我们想要创建一个包含5个元素的学生数组
    

    然后,初始化结构体数组时,您将字符串字面量赋值给字符数组,但忘记添加引号。此外,您可以使用花括号 {} 来简化数组的初始化过程:

    students[0] = {"John", 85};
    students[1] = {"Jane", 92};
    students[2] = {"Alice", 78};
    students[3] = {"Bob", 90};
    students[4] = {"Eve", 88};
    

    现在,我们将所有修改综合在一起:

    #include <stdio.h>
    
    // 正确的结构体定义
    typedef struct student {
        char name[20];
        int score;
    } Student;
    
    int main() {
        // 创建包含5个元素的学生数组,并指定大小
        Student students[5];
    
        // 使用花括号初始化数组
        students[0] = {"John", 85};
        students[1] = {"Jane", 92};
        students[2] = {"Alice", 78};
        students[3] = {"Bob", 90};
        students[4] = {"Eve", 88};
    
        // 打印学生信息
        for (int i = 0; i < 5; i++) {
            printf("Name: %s, Score: %d\n", students[i].name, students[i].score);
        }
    
        return 0;
    }
    

    这段代码应该能正确编译并运行,打印出每个学生的姓名和分数。如果您还有其他疑问或遇到其他问题,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月17日

悬赏问题

  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥30 java 项目中同包中,无法在子文件中引用
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误
  • ¥40 想找个软件,但我不知道怎么找到它,我甚至不知道有没有
  • ¥15 怎么把60秒的视频时长改成显示0秒?且视频内容没有任何变化的正常播放?目的是为了解决一些平台对视频时长的要求,最好有自动处理的工具!
  • ¥15 累加器设初值为00H