张小艾 发表于 2020-5-16 17:24:59

关于指针

菜鸟又来求助了;一个实验作业,输入一个3X4的数组先找出每一-行中 的最大元素,再分别除该行中的所有元素,最后输出数组。要求:定义和调用函数处理数组中的元素,在函数中使用指针、数组各一次。
#include<stdio.h>
void max(float a)
{
        float m;
        int i, j;
        for (i = 0;i < 3;i++) {//取出最大值
                for (j = 0; j < 4;j++) {
                        if (a >= m) {
                                m = a;
                        }
                }
        }
        for (i = 0;i < 3;i++) {//各项除去最大值
                for (j = 0;j < 4;j++) {
                        a = a / m;
                }
        }
}
int main()
{
        float a;
        int i, j;
        printf("请输入3*4的数组:");
        for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        scanf("%f", &a);

                }
        }
        max(a);
        for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        printf("%.2f ", a);
                }
                printf("\n");
        }
        return0;

}
功能是实现了,但是还要要求用到指针{:10_247:} 大佬能看看怎么改嘛?

人造人 发表于 2020-5-16 17:25:00

指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?

#include<stdio.h>
//void max(float a)
void max(float (*a))
{
      float m;
      int i, j;
      for (i = 0;i < 3;i++) {//取出最大值
                for (j = 0; j < 4;j++) {
                        if (a >= m) {
                              m = a;
                        }
                }
      }
      for (i = 0;i < 3;i++) {//各项除去最大值
                for (j = 0;j < 4;j++) {
                        a = a / m;
                }
      }
}
int main()
{
      float a;
      int i, j;
      printf("请输入3*4的数组:");
      for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        scanf("%f", &a);

                }
      }
      max(a);
      for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        printf("%.2f ", a);
                }
                printf("\n");
      }
      return0;

}

人造人 发表于 2020-5-16 17:43:37

在函数中使用?
这样?
#include<stdio.h>
void max(float a)
{
      float m;
      int i, j;
      for (i = 0;i < 3;i++) {//取出最大值
                for (j = 0; j < 4;j++) {
                        //if (a >= m) {
                        if (*(a + i) >= m) {
                              m = a;
                        }
                }
      }
      for (i = 0;i < 3;i++) {//各项除去最大值
                for (j = 0;j < 4;j++) {
                        a = a / m;
                }
      }
}
int main()
{
      float a;
      int i, j;
      printf("请输入3*4的数组:");
      for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        scanf("%f", &a);

                }
      }
      max(a);
      for (i = 0;i < 3;i++) {
                for (j = 0;j < 4;j++) {
                        printf("%.2f ", a);
                }
                printf("\n");
      }
      return0;

}

张小艾 发表于 2020-5-16 17:51:14

人造人 发表于 2020-5-16 17:25
指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?

我觉得也没区别,用到就算吧,void max(float (*a))这一段是个指针?我一开始改的是float *a但是报错了_(:з」∠)_

张小艾 发表于 2020-5-16 18:00:31

人造人 发表于 2020-5-16 17:25
指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?

哦,懂了,一级指针引用二维数组,谢谢大佬{:10_254:}
页: [1]
查看完整版本: 关于指针