我是最最最初学者,为什么C语言里结果一直不变。
这是由于c语言中的方法参数传递分为传值引用(形参,在方法中修改的值只在方法中有效)和指针引用(实参,可以直接修改实际结构体或参数的值),而你问题中的代码属于形参传递,所以在main函数中打印的结果没有变化。
可能情况有:是不是程序运行出现错误,如:死循环;如果是死循环,程序将会进行持续运算,因此不会有退出结果。没有输出结果的函数,例如是不是没有printf函数?或者你可以把运行结果和代码发给我看看。
因此输入时必须在三个数之间加逗号。C规定:如果在“格式控制”字符串中除了格式说明以外还有其 它字符,则在输入数据时应输入与这些字符相同的字符。
所以函数退出后原数据是没有改变的(这个函数实际上没有必要用指针写,直接传参数就可以了)。下面的swap函数,引用了参数地址,通过局部指针改变了指向的地址中数据的内容,导致执行后数据内容改变。
你在输入a、b之后的那个回车被当成运算符读进去了,所以结果是error。
为什么c语言重新赋值后一直不变?
这是因为scanf函数是用于从标准输入中读取数据的,它将读取的值存储到指定的变量中,覆盖原有的值。在你的例子中,当你使用scanf读取新值时,这个新值将覆盖amount原有的初始值100。
如果通过函数传参方式调用,并且不是传的指针,那就不会改变原来的值,如果想改变全局变量的值,可以直接在函数中使用,不需要传参。
你用的是值传递,就是说你把主函数中数组的值赋给了被调用函数中,这个值就给了被调用函数中的另一个变量。当然你在被调用函数中是无法改变主函数中的数组的。
为什么我的C语言结果总是不变
每一个数都能被本身整除,所以累加到s时,肯定不相等了。
因为原因有二,其一:你的代码跟别人的代码不一样也会有很大差别,比如你的是a++,别人的是++a。
导致i一直等于1/-1,退不出循环,已经死循环了。应该把此代码删除,再定义一个 int flag = 1;while(i = 100){ s = s + flag/i;flag = -flag;i++;} 还有printf里的换行是\n不是 /n。
C语言里,有没有什么办法可以使结构体数组里的数据在每次打开程序时还是…
1、在C语言中,写入文件(.dat或者.txt)时有多种方式(二进制方式,文本方式)具体实现有(覆盖,追加……)可以选择,有你所说的这种覆盖掉以前数据的写入方法。你参考下你的学习书籍应该就有。
2、对于数组元素很多的初始化可以使用初始化列表方法。在c语言中用于进行初始化的程序结构则称为初始化器或初始化列表。
3、// Win32Projectcpp : 定义应用程序的入口点。