为什么系统没有提示我错误是这样的

img


为什么系统没有提示我错误,我输出来却是这样的,有没有有能力者带带

lead[10]空间都分配了,你没输入那么多数据,但全部输出。没输入部分内存有其它无效数据没覆盖,所以输出内容是未知的。

修改如下,供参考对照:

#include <stdio.h>
struct PERSON {
    char name[10];
    double a, b, c, income;
}lead[50];
int main()
{
    int n, i;
    scanf("%d", &n);
    for (i = 0; i < n; i++) {    // 输入数据
        scanf("%s %lf %lf %lf", lead[i].name, &lead[i].a, &lead[i].b, &lead[i].c);
        lead[i].income = lead[i].a + lead[i].b + lead[i].c;
    }
    for (i = 0; i < n; i++)     // 输出
        printf("%-10s: %lf\n", lead[i].name, lead[i].income);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7572380
  • 这篇博客也不错, 你可以看下对于一个给定的数组,输入一个数,如果有则删除该数(多个要全删除),没有给出提示。
  • 除此之外, 这篇博客: 为了拿证好吧中的 写这篇文章的缘由呢是因为我发现我记性真的很差,不把他记下来我总是需要去翻书找知识点,但是外出时带书又会不方便,所以我想到了把他传到网上,以便我和大家随时查看。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 架构设计的第一层拆解小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    对于代码输出与预期不符合的问题,可能的原因有很多,以下是一些可能的原因和解决方法:

    1. 代码逻辑错误:需要检查代码的实现是否符合预期,是否漏掉了某些情况的处理,是否有语法错误等。

    2. 数据类型错误:需要检查变量的数据类型是否正确,是否需要进行强制类型转换。

    3. 参数传递错误:需要检查函数调用时参数列表中的参数顺序和类型是否正确,是否需要传递指针或引用。

    4. 内存泄漏:需要检查代码中是否存在未释放的内存,是否存在循环引用等情况。

    5. 系统错误提示被屏蔽:需要根据具体的编程环境和工具,检查系统日志、调试信息等是否被屏蔽了,是否需要进行设置或调整。

    针对具体的问题,可以考虑以下解决方式:

    1. 通过调试工具或输出调试信息来定位问题,例如使用gdb调试工具、增加printf语句等方式。

    2. 分析代码思路,逐步排除不可能的情况,缩小问题范围。

    3. 借鉴已有的类似问题或解决方案,在网上搜索相关资料、咨询相关专业人士等方式。

    4. 重新审视需求和功能实现,是否需要优化或重构代码。

    如果以上方法都不能解决问题,那么可能需要重构代码、修改编程环境或工具、修复系统错误等措施,具体要根据具体情况进行分析和解决。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^