请教!关于数组的一些问题

 

第一个 j %d 为什么变成0-9

第二个 j %d 为什么会是100-109呢

明明他在运算 n[i] = i + 100;而 j 只输出内容 ,最后却有数值了呢

#include<stdio.h>//声明数组、数组赋值、访问数组
int main()
{
    int n[10];
    int i, j;
    for (i = 0; i < 10; i++)
    {
        n[i] = i + 100;

        
    }
    for (j = 0; j < 10; j++)
    {
        printf("Element[%d]=%d\n", j, n[j]);
    
    }
    return 0;
}

最终输出结果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

printf("Element[%d]=%d\n", j, n[j]);中%d表示格式化输出整型数据,第一个%d对应于后面第一个数据,第二个%d对应第二个,所以第一个%d数据的位置会依次输出j的值,也就是从0到9,第二个%d数据的位置会数据n[j],也就是n[0]到n[9].

for (j = 0; j < 10; j++)  j从0变到9,所以j有值。

n[j]也是从n[0]到n[9],也就是从100到109

第一个for循环后,数组n[10]值,即n[0]--n[9]值为100-109,第二个for循环数组依次打印出来, 第二个for循环“printf("Element[%d]=%d\n", j, n[j]);”中 第一个%d 对应 j 的值,第二个%d 对应n[j]的值,for 循环执行时 j 的值依次为

0-9,n[j]的值依次为100-109,所以结果如题中的结果