#include<stdio.h>
void f3(int*p){
(*p)++:
}
void main(){
int n = 9:
f3(&n):
printf("n=%d",n):
getchar():
}
你把分号写成了冒号
#include<stdio.h>
void f3(int*p){
(*p)++;
}
int main(){
int n = 9;
f3(&n);
printf("n=%d",n);
getchar();
return 0;
}
语句结尾 要是 分号 ;
句末冒号改成分号
不知道你这个问题是否已经解决, 如果还没有解决的话:我们再来看一下,平时经常听到的浮点数会有精度损失的情况是怎么回事?
如果我们现在想用浮点数表示 0.2,它的结果会是多少呢?
0.2 转换为二进制数的过程为,不断乘以 2,直到不存在小数为止,在这个计算过程中,得到的整数部分从上到下排列就是二进制的结果。
0.2 * 2 = 0.4 -> 0 0.4 * 2 = 0.8 -> 0 0.8 * 2 = 1.6 -> 1 0.6 * 2 = 1.2 -> 1 0.2 * 2 = 0.4 -> 0(发生循环) ...
所以 0.2(D) = 0.00110…(B)。
因为十进制的 0.2 无法精确转换成二进制小数,而计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。
根据提供的参考资料,你遇到的问题是在第三行出现错误。根据你提供的信息不足,我无法具体回答你的问题。以下是一些可能的原因和解决方案:
语法错误:请确保你的代码没有语法错误,特别是在第三行。检查是否有拼写错误、括号匹配错误、缺少分号等。你可以在回答中提供第三行的具体代码和错误提示,这样我就可以更好地帮助你找到问题。
未定义的变量:如果第三行使用了一个未定义的变量,会导致错误。请确保你在第三行之前正确地声明和初始化了需要使用的变量。
缺少头文件:如果第三行依赖于某个头文件中的定义,但你没有包含相应的头文件,会导致错误。请检查你的代码,确保包含了需要的头文件。
编译器问题:有时,某些特定的编译器或编译器版本可能存在错误或限制。如果你确定代码没有问题,可能是编译器的问题。尝试升级或更换编译器,看看问题是否得到解决。
如果你可以提供更多具体的信息,我将能够更好地帮助你解决问题。