代码写出来可以运行但是输出随机数

C语言,请问为什么代码会输出随机数,题目如下:假设我们有一群美洲驼。每年,新的美洲驼出生,骆驼去世。

img

img

把最后打印b那里前面的&去掉,然后在for循环中,推测每次循环需要将计算出的b赋值给a。

测试如下:


#include <stdio.h>

int main(void){
    
    int n,a,b,c;
    printf("please input c:");
    scanf("%d",&c);
    
    if(c<1){
        printf("please input a correct num");
        return 0;
    }
    
    printf("please input a:");
    scanf("%d",&a);
    
    for(n=1;n<=c;n++){
        b=a+(a/3)-(a/4);
        //a=b;  // 这里推测需要将b的值赋值给a 
    }
    
    printf("b=%d",b);  // 打印int变量b的值,不需要使用取址符&,去掉即可
    
    return 0;
    
} 

img

【以下回答由 GPT 生成】

问题原因是current_camels变量未被初始化。在C语言中,未初始化的变量的值是不确定的,取决于内存中原有的数据。因此,当你运行代码时,current_camels的初始值是随机的,导致输出的结果也是随机的。

为了解决这个问题,你需要在声明变量时给current_camels赋一个初始值。以下是修改后的代码:

#include <stdio.h>

int main() {
    int current_camels = 10;
    int new_camels = 5;
    int dead_camels = 3;

    current_camels = current_camels + new_camels - dead_camels;

    printf("美洲驼种群数量为:%d\n", current_camels);

    return 0;
}

现在current_camels拥有一个初始值,代码将输出正确的结果。



【相关推荐】



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