*指针与多维数组

  • 每一维的数组名为 a[i]。
  • a[i]+1 是 a[i][1] 的地址;a[i]+j 是 a[i][j] 的地址。
    *(a[i]+1) 是 a[i][1] 的间接引用形式;*(a[i]+j) 是 a[i][j] 的间接引用形式。

  • a是 a[0] 的地址,a+1 是 a[1] 的地址,a+i 是 a[i] 的地址。
    *(a+i) 是 a[i] 的间接引用形式。

  • *(a+i)+1 是 a[i][1] 的地址;*(a+i)+j是 a[i][j] 的地址。
    *(*(a+i)+j) 是 a[i][j] 的间接引用形式。

  • 行指针:地址 a+i,i 表示指向下 i 行
    元素指针:地址 *(a+i)+j,j 表示指向同一行下 j 个元素

1. 有一个3*4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值(使用制表符\t)。

二维数组 a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

复制代码
#include <stdio.h>
int main()
{
    int i,j,a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%d\t",*(*(a+i)+j));//该位置控制制表格式
        }
        if(i==2)
        {
            break;//最后一行不换行
        }
        printf("\n");//该位置控制换行输出
    }
    return 0;
}
复制代码

2. 有一个班3名学生,各学4门课程,计算总平均分数以及第3个学生的成绩。
各科成绩如下:

复制代码
#include <stdio.h>
int main()
{
    int i,j;
    double a[3][4]={65,67,70,60,
        80,87,90,81,
        90,99,100,98},avg,sum;
    sum=0.0;
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            sum=sum+*(*(a+i)+j);
        }
    }
    avg=sum/(3*4);
    printf("average = %.2f\n",avg);
    printf("the score of NO.3 are:\n");
    for(j=0;j<4;j++)
    {
        printf("%.2f",*(a[2]+j));
        if(j==3)
        {
            break;
        }
        printf(" ");
    }
    return 0;
}
复制代码

3. 有一个班3名学生,各学4门课程,
查找有一门及以上课程不及格的学生,输出他们的全部课程成绩。
各科成绩如下:

复制代码
#include <stdio.h>
int main()
{
    int i,j,number=0;
    double a[3][4]={65,57,70,60,
        58,87,90,81,
        90,99,85,98};
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            if(*(a[i]+j)<60)
            {
                number++;
                if(number!=1)
                {
                    printf("\n");
                }
                printf("No.%d:\n",number);
                printf("%.1f %.1f %.1f %.1f",*a[i],*(a[i]+1),*(a[i]+2),*(a[i]+3));
                break;
            }
        }
    }
    return 0;
}
复制代码

-END

posted @   找回那所有、  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
这里到底了哦~(●'◡'●)
点击右上角即可分享
微信分享提示