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

C语言计算每人分得纸杯蛋糕数量程序运行异常 求错误排查

代码问题排查

你的代码存在3个明显错误,逐一说明如下:

  • 计算逻辑顺序错误
    pie = c/peo、rem_pie = c%peo两行计算代码放在了scanf读取用户输入之前,此时变量c和peo未初始化,存储的是内存中的随机垃圾值,计算结果完全无效。需要把计算逻辑移动到两次scanf读取完用户输入的数值之后。
  • 输出参数错误
    调用printf输出pie和rem_pie的数值时,错误添加了取地址符&,导致实际输出的是两个变量的内存地址,而非变量存储的数值,删除两个printf参数中的&即可。
  • 多余的强制类型转换
    c和peo本身就是int类型,二者做除法、取余运算的结果默认就是int类型,代码中的(int)强制转换完全多余,可直接删除。

修正后完整代码

#include <stdio.h>

int main()
{
    int c, peo, pie, rem_pie;

    printf("Enter number of cupcakes:");
    scanf("%d", &c);
    printf("Enter number of people:");
    scanf("%d", &peo);
    
    // 计算逻辑调整到输入完成后
    pie = c / peo;
    rem_pie = c % peo;
    
    // 输出删除取地址符
    printf("Everyone will get %d pieces.", pie);
    printf("\nThere are %d remaining pieces.", rem_pie);
    return 0;
}

运行验证

输入纸杯蛋糕数21、人数5时,输出结果如下:

Enter number of cupcakes:21
Enter number of people:5
Everyone will get 4 pieces.
There are 1 remaining pieces.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:39:02