编写一个循环来显示tem数组一星期中每天的最高温度。循环应该调用find_largest函数 5C

且一次传递数组的一行,。
int tem[7][24];//数组存储一星期中7天每个小时的温度
int find_largest(int a[],int n)这是一个寻找数组中最大元素的函数。需要传递int *型的参数

以下是我编写的两种循环
for(i=0;i<7;i++)
printf("%d",find_largest(tem[i],24));

int *p;
for(p=&tem[0];p<&tem[7];p++)//因为本章学了用指针取代下标访问数组,所以想用这个方法试一下
printf("%d",find_largest(*p,24));

第一个循环应该是对的。想问一下第二个循环对不对。因为本章学习了用指针取代下标访问数组。但是这个指针指向的是二维数组中的某一行,我理解的也就是指向一个一维数组。而不是什么访问数组元素。所以不确定可不可以这样。

3个回答

第二个是有问题的,p应该是一个数组指针,而不是一个指向int的指针,应该定义为:

 int (*p)[24];

第二个最好不要这么写,因为下标越界了。用<=&item[6]

whyyouhitme_
whyyouhitme_ 回复caozhy: C语言程序设计现代方法-K.N.KING
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复whyyouhitme_: 不知道你看的那本书。书明显这里写的不规范嘛。
一年多之前 回复
whyyouhitme_
whyyouhitme_ 书上有一节,处理多(二)维数组的行,就是我这样写的,用的<号后面跟数组长度
一年多之前 回复

参照下面的代码调整你的代码即可

#include <stdio.h>

int a[3][24]={
{11,12,13,14,15,16,17,18,19,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124},
{21,22,23,24,25,26,27,28,29,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224},
{31,32,33,34,35,36,37,38,39,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324},
};

int main(int argc,char ** argv)
{
        int i,j,k,l;

        for (i=0;i<3;i++)
        {
                for(j=0;j<24;j++)
                {
                        printf("%d ",a[i][j]);
                }
                printf("\n");
        }

//====================== slash =========================

        int (*p)[24];
        p=a;

        for (k=0;k<3;k++)
        {
                for(l=0;l<24;l++)
                {
                        printf("%d ",(*p)[l]);
                }
                p++;
                printf("\n");
        }

}


ykun089
ykun089 回复cara_celia: argc是程序启动的入参个数,argv是指向各个入参的数组
一年多之前 回复
cara_celia
cara_celia 请问在int main后面括号里面的变量声明是什么意思呀
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!