刘颖1202 发表于 2021-10-9 21:35:44

新人求助help

#include<stdio.h>
int main()
{
        const int PRICE=30;
    int total;
        int num=0;
        printf("请输入单价PRICE:\n");
        scanf("%d",&PRICE);
        printf("请输入数量num:\n");
        scanf("%d",&num);
        total=10 * PRICE;
        printf("total=%d\n",total);
        return 0;
}

怎么最终的运用结果只能是300,我输入了别的都不会变

傻眼貓咪 发表于 2021-10-9 21:39:28

你已经定义 const int PRICE,关键字 const 限定一个变量不允许被改变,产生静态作用。

hrpzcf 发表于 2021-10-9 21:54:10

#include <stdio.h>

int main()
{
    int PRICE = 30; // 不能用const定义PRICE为不可变的变量
    int total;
    int num = 0;

    printf("请输入单价PRICE:\n");
    scanf("%d", &PRICE); // 如果你用const关键字定义了PRICE,这里就是没有用的
    printf("请输入数量num:\n");
    scanf("%d", &num);
    total = num * PRICE; // 这里你想写10 * PRICE还是num * PRICE?
    printf("total=%d\n", total);

    return 0;
}

刘颖1202 发表于 2021-10-9 22:09:43

hrpzcf 发表于 2021-10-9 21:54


就是不要定义是吗?还有这个int num = 0;我可以不写等于0吗

hrpzcf 发表于 2021-10-9 22:19:30

本帖最后由 hrpzcf 于 2021-10-9 22:20 编辑

刘颖1202 发表于 2021-10-9 22:09
就是不要定义是吗?还有这个int num = 0;我可以不写等于0吗
1. 不是不要定义,是不要用const关键字把它定义为不可变的变量。
2. 最好不要去掉,price也一样。
如果你初始赋值=0去掉了,它的初始值就会是一个奇怪的值。
因为你没有判断scanf是否读取成功的语句,如果你输入了别的字符导致读取失败,num就不是0而是奇怪的值了,计算出来的就会是一个很奇怪的结果。

刘颖1202 发表于 2021-10-10 18:46:29

hrpzcf 发表于 2021-10-9 22:19
1. 不是不要定义,是不要用const关键字把它定义为不可变的变量。
2. 最好不要去掉,price也一样。
如果 ...

谢谢
页: [1]
查看完整版本: 新人求助help