2201_75843485 2024-01-08 10:07 采纳率: 50%
浏览 16

C语言 指针多维数组 基础题

题目是这样

img


我的代码是这样

#include <stdio.h>
int main()
{
    void search(float(*p)[4], int n);
    float score[3][4] = { {65,57,70,60},{58,87,90,81},{90,99,100,98} };
    search(score, 3);
    return 0;
}

void search(float(*p)[4],int n)
{
    int i,j,m;
    for (i = 1; i < 4; i++)
    {
        m = 0;
        for (j = 0; j < n; j++)
        {
            if (*(*(p + i) + j) < 60)
                m = 1;
        }
        if (m == 1)
        {
            printf("NO.%d fail,the score is:\n", i);
            for (j = 0; j <=n; j++)
                printf("%f ", *(*(p + i-1) + j));
            printf("\n");
        }
    }
    
}

结果为什么是这样 TAT

img


帮忙分析一下谢谢

  • 写回答

3条回答 默认 最新

  • 柯本 2024-01-08 10:15
    关注
    
       for (i = 1; i < 4; i++) //这里,C的下标从0开始,,只能是0~2,若是1~3,下标溢出,得到的是随机值或程序会奔溃
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月8日

悬赏问题

  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥20 spring boot集成mqtt的使用问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错