C 您好,这个程序用于计算数组中的最小值和最大值

C 您好,这个程序用于计算数组中的最小值和最大值,c,arrays,function,max,min,C,Arrays,Function,Max,Min,我用函数编写了代码,它给出了变量的地址,而不是以相同的编码方式得到的解的值 这是我的密码 #include <stdio.h> int maxi(int feld[],int size); int mini(int feld[],int size); int main(void){ int feld[]={33,36,31,38,45,42,11,29,56,54}; int len; int min,max; len=sizeof(feld)

我用函数编写了代码,它给出了变量的地址,而不是以相同的编码方式得到的解的值

这是我的密码

#include <stdio.h>

int maxi(int feld[],int size);
int mini(int feld[],int size);

int main(void){
    int feld[]={33,36,31,38,45,42,11,29,56,54};
    int len;
    int min,max;

    len=sizeof(feld)/sizeof(int);
    printf("Lange des Datenfeldes=%i\n",len);
    max=maxi(feld,len);
    min=mini(feld,len);
    printf("Minimum = %i\tMaximum = %i\n",min,max);
    return 0;
}

int maxi(int feld[],int len){
    int i,max;

    for(i=0;i<len;i++){
        if(feld[i]<max){
                feld[i]=max;
        }
    }
    return max;
}

int mini(int feld[],int len){
    int i,min;

    for(i=0;i<len;i++){
        if(feld[i]>min){
            feld[i]=min;
        }
    }
    return min;
}
#包括
int-maxi(int-feld[],int-size);
int mini(int feld[],int size);
内部主(空){
int feld[]={33,36,31,38,45,42,11,29,56,54};
内伦;
最小整数,最大整数;
len=sizeof(feld)/sizeof(int);
printf(“日期的语言=%i\n”,len);
最大值=最大值(费尔德,伦);
最小值=最小值(长、长);
printf(“最小值=%i\t最大值=%i\n”,最小值,最大值);
返回0;
}
int maxi(int feld[],int len){
int i,max;

对于(i=0;i您需要为函数中的
max
min
提供一个起始值。
一个好的选择是
max=INT\u MIN;
MIN=INT\u max;
。另外,在您的包含中添加
\include
,因为
INT\u max
INT\u MIN
是在其中定义的

int maxi(int feld[],int len){
    int i;
    int max = INT_MIN;
    for(i=0;i<len;i++){
        if(feld[i]<max){
            max=feld[i];
        }
    }
    return max;
}
int-maxi(int-feld[],int-len){
int i;
int max=int_MIN;

对于(i=0;i您必须先将
maxi()
中的
max
mini()
中的
min
初始化为数组中的某个值,例如
feld[0]

不要使用立即值(如
0
)进行初始化,因为当数组中的所有值都大于或小于该值时,使用该值将导致问题

包括
限制。h
,对于
max
使用
INT\u MIN
,对于
MIN
使用
INT\u max
是可以的

更新:

您正在尝试计算
maxi()
中的最小值和
mini()
中的最大值。您必须反转
feld[i]min的比较运算符的方向


使用
INT_MIN
INT_MAX
是很好的,因为当
size代码向后时,它也会在一定程度上起作用

作业顺序也不正确

初始化
max

mini()
也存在类似问题

int-maxi(int-feld[],int-len){
//int max;
int max=int_MIN;
int i;

对于(i=0;i
maxi()
不初始化
max
。与
mini()
类似。还有其他问题(例如,max和mini中的逻辑)。你真的应该用一个以问号结尾的句子来提问。很难弄清楚你具体在问什么。与其在其他网站上发布你的输出,最好在这里发布你的输出,并将其作为文本,而不是图片。为什么max=INT\u MIN;我可以选择什么吗else@MahmoudAbo为什么要设置
max初始值是否更高?考虑数组可以是<代码> Feld[] = { In minmin,in minmin,in min-min,…};< /Cord>它给我(最小值=2147483637最大值=2147483648))当我用Inthmax和Inthmin和Max定义它时,它给了Min和Max翻转的真值。(最小值=2147483637最大值=2147483648))
int maxi(int feld[], int len){
  // int max;
  int max = INT_MIN;
  int i;
  for(i=0;i<len;i++){
    // if(feld[i]<max){
    if(feld[i] > max){
      // feld[i] = max;
      max = feld[i];
    }
  }
  return max;
}