关于指针
菜鸟又来求助了;一个实验作业,输入一个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:} 大佬能看看怎么改嘛? 指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?
#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;
}
在函数中使用?
这样?
#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:25
指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?
我觉得也没区别,用到就算吧,void max(float (*a))这一段是个指针?我一开始改的是float *a但是报错了_(:з」∠)_ 人造人 发表于 2020-5-16 17:25
指针和数组之间有什么区别?
这样算指针和数组各使用一次吗?
哦,懂了,一级指针引用二维数组,谢谢大佬{:10_254:}
页:
[1]