请问c语言程序跳出异常的大数字怎么解决

就普通的做例题,但是跳出了6487512这个异常大的数字
#include

void pyramid( int n );

int main()
{ int n;
scanf("%d", &n);
pyramid(n);

return 0;}

void pyramid(int n){
int i,j;
for(i=1;i<=n;i++){
for (j=1;j<=n-i;j++)
printf(" ");
for (j=1;j<=i;j++)
printf("%d ",&i);
putchar('\n');
}
}

运行结果及报错内容 会输出格式正确的金字塔,但是数字被替换成6487512
都改成教材上的原版代码了还是会显示大数字

printf("%d ",&i);
&i 这个是i变量的地址,就是一个指针值
i 这个才是变量i的值
所以改成
printf("%d ",i);
即可

printf("%d ",&i); 输出不用带‘&’ 符号: printf("%d ",i); 即可。 代码修改如下,供参考:

#include <stdio.h>
void pyramid( int n );
int main()
{
    int n;
    scanf("%d", &n);
    pyramid(n);

    return 0;
}
void pyramid(int n){
    int i,j;
    for(i=1;i<=n;i++){
       for (j=1;j<=n-i;j++)
           printf(" ");
       for (j=1;j<=i;j++)
           printf("%d ",i); //printf("%d ",&i);
       putchar('\n');
    }
}