发布网友 发布时间:2023-07-31 06:42
共6个回答
热心网友 时间:2024-12-02 15:04
scanf("%d\n",&i); 意思就是 自己输入个数(键盘输入 假设为3),之后scanf的作用就是把3的地址存入i的地址中(就是把i的赋值为3) 之后执行j=i*i=9 .printf("%d\n",j); 输出9追问恩 是这样的。如果把scanf放在后面的话,那就错误呢,能解释下错误原因么 从流程顺序上啊追答你把scanf放在后面的话,
先执行.printf("%d\n",j); 计算机并没有把 3存到i中, 那么j=i*i 就是个未知数。 就是错误了。
热心网友 时间:2024-12-02 15:04
scanf("%d\n",&i);是输入数据;热心网友 时间:2024-12-02 15:05
一般说用int i定义了i,系统并不会初始化i,也就是说i并没有一个固定值,然后你计算了i*i,这个结果也没有固定值,这个时候你再给i赋值,会有用吗?还是那句话,程序没有错,只是不是你想要的结果。如果你想要得到你输入的i值,并计算i*i,那么就把scanf放到j=i*i之前吧。追问恩 就是不明白为何会没有用。之后再赋值为何不行?能从流程执行上解释下么,或是从内存存读上???
热心网友 时间:2024-12-02 15:05
int i 只是给i在内存中分配一块空间,由于你没赋初值,所以在内存中的空间里存的是个随机值,这时算出来的j未知,而当你输入i的时候j的值没有变,所以此时输出的j是个未知值。热心网友 时间:2024-12-02 15:06
i是一个未知值来自:求助得到的回答热心网友 时间:2024-12-02 15:07
什么意思?没懂。。。再说你能输出正确结果吗?追问就是说 程序错误 正确的应该先给i数值 再计算。但是为什么会这样,求解释追答程序错误?我看没有,只是结果并不是你想要的?对吗。