You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用printf输出-858993460而非变量值的问题求助

问题分析与解决方案

你的代码问题出在printf格式字符串与传入变量数量不匹配,导致读取到栈中未初始化的垃圾值。

具体错误点

看你的printf语句:

printf("#briefjes van 500 euro: %d\n#briefjes van 200 euro: %d\n#briefjes van 100 euro: %d\n#briefjes van 50 euro: %d\n#briefjes van 20 euro: %d\n#briefjes van 10 euro: %d\n#briefjes van 10 euro: %d\n#briefjes van 5 euro: %d\n#munten van 2 euro: %d\n#munten van 1 euro: %d\n", briefjes500, briefjes200, briefjes100, briefjes50, briefjes20, briefjes10, briefjes5, munten2, munten1);
  • 格式字符串里有10个%d占位符,但你只传入了9个变量
  • 重复写了一行#briefjes van 10 euro: %d,导致最后一个#munten van 1 euro: %d没有对应的变量,只能读取栈中随机的未初始化数据(即你看到的-858993460,这是VS环境下未初始化int的默认值0xCCCCCCCC的十进制表示)

修正后的代码

把重复的10欧元纸币输出行改成5欧元的,让占位符和变量一一对应:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
    int totaalGeld, briefjes500, briefjes200, briefjes100, briefjes50, briefjes20, briefjes10, briefjes5, munten2, munten1, rest;

    printf("Geef een hoeveelheid geld: ");
    scanf("%d%*c", &totaalGeld);
    briefjes500 = totaalGeld / 500;
    rest = totaalGeld % 500;
    briefjes200 = rest / 200;
    rest = rest % 200;
    briefjes100 = rest / 100;
    rest = rest % 100;
    briefjes50 = rest / 50;
    rest = rest % 50;
    briefjes20 = rest / 20;
    rest = rest % 20;
    briefjes10 = rest / 10;
    rest = rest % 10;
    briefjes5 = rest / 5;
    rest = rest % 5;
    munten2 = rest / 2;
    munten1 = rest % 2;
    printf("#briefjes van 500 euro: %d\n"
           "#briefjes van 200 euro: %d\n"
           "#briefjes van 100 euro: %d\n"
           "#briefjes van 50 euro: %d\n"
           "#briefjes van 20 euro: %d\n"
           "#briefjes van 10 euro: %d\n"
           "#briefjes van 5 euro: %d\n"
           "#munten van 2 euro: %d\n"
           "#munten van 1 euro: %d\n", 
           briefjes500, briefjes200, briefjes100, briefjes50, briefjes20, briefjes10, briefjes5, munten2, munten1);

    return 0;
}

关键说明

C语言的printf不做参数数量校验,当占位符多于传入的变量时,会从栈中读取额外的随机数据。确保每个%d都有对应的变量,就能正常输出内存中的实际值。

内容的提问来源于stack exchange,提问作者user27518041

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:35:06