定义一个包含10个元素的数组,输入后将每个元素与对应下标相乘后输出该数组(输入时使用指针进行循环)

2025-06-26 22:34:23
推荐回答(2个)
回答1:

#include 
int main()
{
    int a[10];
    int *p = a;
    int i;
    for(p = a; p < a+10; p ++)
        scanf("%d",p);
    for(p=a, i = 0; p < a+10; i++)
        *p*=i;
    for(p = a; p < a+10; p ++)
        printf("%d ", *p);
        
    return 0;
}

回答2:

#include 
#define NUM 10
int main(int argc, char *argv[])
{
    long array[NUM];
    long *pArray;
    int i;
    for (i = 0, pArray=array; i < NUM; i++)
    {
        scanf("%ld", pArray++);
    }
    for (i = 0, pArray=array; i < NUM; i++)
    {
        printf("%ld ", *pArray++ * i);
    }
    printf ("\n");
    return 0;
}

执行结果

1
2
3
4
5
6
7
8
9
10
0 2 6 12 20 30 42 56 72 90

注:上述源代码中认为数组下标从0开始,若需要从1开始则需要将第14行改为

        printf("%ld ", *pArray++ * (i + 1));