刚开始学c语言,想问问这里为什么不用变量初始化呀?

因为前面的课程说第一次使用这个变量之前要初始化,但他后面写代码的时候这里好像就没有初始化了,是为什么嘞?就是foot和inch这俩变量

img

foot和inch俩变量,用scanf() 函数从键盘输入为两个变量赋值。

按键输入的时候已经给了值了,不做初始化没问题的!

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 建议你看下这篇博客👉 :厘米换算英尺英寸 (15 分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是?
  • 除此之外, 这篇博客: c语言基础题(笔记一)中的 2.如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    输入格式:
    输入在一行中给出1个正整数,单位是厘米。
    输出格式:
    在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。
    输入样例:
    170
    输出样例:
    5 6

    #include<stdio.h>
    int main(void)
    {
    	int cm=0;
    	scanf("%d",&cm);
    	int foot=cm/30.48;
    	int inch=((cm/30.48)-foot)*12;
    	printf("%d %d",foot,inch);
    	return 0;
    }
    

    在这里插入图片描述
    除法运算符" / ",如果是两个整数相除结果为整数 。
    如果需要保留小数时 必须将其中一个除数转换为浮点数,(如运算q=a/b变成q=0.1a/b10把a先缩小10倍变成小数在运算后扩大10倍**

  • 以下回答来自chatgpt:

    我认为不能直接从这些参考资料看出数据不进行初始化的原因和具体是哪两个变量没有进行初始化,因为参考资料中没有与此直接相关的代码。针对第一个段落的问题,我可以建议以下解决方案:

    1. 针对运行结果不出现任何值的情况,可以在代码中检查是否存在内存泄漏或释放错误导致的内存访问问题。
    2. 对于指针野指针的问题,可以使用断言或编译器警告等工具来提高代码的健壮性。
    3. 对于是否指向NULL的问题,可以在创建指针时进行初始化为NULL,或者针对具体情况进行判断和处理,比如检查指针是否为空再进行访问等。

    针对第二个段落的问题,可以从以下方面进行解释和解决:

    1. 对于没有初始化的结构体指针A,其成员next的值是不确定的,访问A->next->Data和A->next->next存在风险。
    2. 可以在创建A后先对其成员next进行初始化,或者在访问时先进行指针是否为空的判断,以提高程序的稳定性和可读性。
    3. 在代码中,由于是访问未知内存,所以计算结果可以是任意值,不一定是3,因此需要注意程序的正确性和可靠性。

    针对第三个段落的问题,可以从以下方面进行解释和解决:

    1. C语言默认的取整方式是向零取整,而不是四舍五入、向上取整或向下取整等其他方式。
    2. 在不同编程语言中,取模和取余的定义及实现可能会有所不同,需要根据具体情况进行选择。
    3. 对于负数的取模和取余,在不同语言和不同实现中可能会有不同的结果,需要进行特殊处理或者使用标准库函数进行计算,以确保结果的正确性。

    综上所述,针对问题和参考资料,我认为需要进一步补充和解释,同时建议在实际编程中遵循良好的编程习惯和规范,注重代码的可读性、可维护性和健壮性。


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