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

C程序赋值input后无法执行changecalc(),主函数代码是否正确?

问题分析与修复

首先说结论:你的main函数是没问题的!程序卡住的原因出在changecalc函数里,有几个关键bug需要修复:

1. 致命的while循环分号

看这段代码:

while(co > 0);{

这里的分号是罪魁祸首!它让while的循环体变成了一个空语句,后面的大括号{}和while没有任何关系。也就是说,只要co > 0成立,程序就会一直卡在这个空循环里——因为循环里没有任何修改co的代码,co的值永远不会变,自然永远满足循环条件,也就永远不会执行后面的逻辑。

你需要把这个分号删掉:

while(co > 0) {

2. 变量名拼写错误

你定义了int ver2=0;,但后面的判断里用的是var2,这会导致编译错误(如果没编译错误的话,var2会被当作未初始化的变量),应该改成:

int var2=0;

3. 遗漏小额金额的处理

当co小于5的时候(比如co=3),你的代码里没有对应的分支处理,这会导致去掉分号后,程序仍然陷入无限循环——因为co的值一直大于0,但没有任何代码去减少它。你需要添加处理1元硬币的分支(假设这是硬币找零的场景):

else {
    // 这里处理1元的情况,比如计数或者直接输出剩余金额
    printf("剩余1元硬币数量:%d\n", co);
    co = 0; // 重置co,退出循环
}

另外,你的else if (co <= 0)分支放在while循环里是没必要的,因为while的条件已经是co > 0,所以这个分支永远不会被触发。你应该把最终的输出放在循环结束之后。

修正后的完整代码

#include <stdio.h> // 记得包含头文件,否则printf/scanf可能有问题

int getinput(void) { 
    int input; 
    printf("enter a value:\n"); 
    scanf("%d", &input); 
    return(input); 
} 

void changecalc(int co) { 
    int var1=0;
    int var2=0; // 修正拼写错误
    int var3=0;
    int var4=0;
    int var5=0; // 新增1元硬币计数变量

    while(co > 0) { // 去掉多余的分号
        if (co >= 50){ 
            var1++; 
            co = co -50; 
        } else if (co >= 20){ 
            var2++; 
            co = co - 20; 
        } else if (co >= 10){ 
            var3++; 
            co = co - 10; 
        } else if (co >= 5){ 
            var4++; 
            co = co - 5; 
        } else {
            var5 = co; // 记录1元硬币数量
            co = 0; // 退出循环
        }
    }
    // 循环结束后输出结果
    printf("50元硬币:%d, 20元硬币:%d, 10元硬币:%d, 5元硬币:%d, 1元硬币:%d\n", 
           var1, var2, var3, var4, var5); 
} 

int main() { 
    int changeowed; 
    // 这里的函数声明可以去掉,因为changecalc已经在前面定义了
    // void changecalc(int changeowed); 
    changeowed = getinput(); 
    changecalc(changeowed); 
    return 0; 
}

额外提示

  • 记得在代码开头包含<stdio.h>头文件,否则printf和scanf可能无法正常工作。
  • main函数里的void changecalc(int changeowed);声明是多余的,因为changecalc函数已经在main之前定义了,编译器已经知道它的存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:14:17