求某一位小数 c语言问题


#include <stdio.h>
int main()
{
    int i;
    int a,b,n,k;//为什么不可以直接int k=a
    scanf("%d %d %d",&a,&b,&n);
    k=a;//为什么一定要这样写
    for(i=1;i<=n-1;i++)
    {
        k=k*10%b;
    }
    printf("%d",k*10/b);
}
#include <stdio.h>
int main()
{
    int i;
    int a,b,n,k=a;
    scanf("%d %d %d",&a,&b,&n);
    for(i=1;i<=n-1;i++)
    {
        k=k*10%b;
    }
    printf("%d",k*10/b);
}


样例 63 85 1
第一个代码求出来是7,但是第二个求出来是0,
为什么是错的呀

因为a是在scanf()输入之后才有值的,肯定要放在scanf()之后

因为k,a都是变量,变量赋给变量是错的,当你输入一个值是,就可以了

第一个中a与k的值相等且为输入的值,第二个中a为输入的值,k为残留在内存中的随机值,因此两个结果不同,第二个是错的。

k=&a
就可以了