求解:分别编写求数组a中最大值max(int a[],int n)和最小值min(int a[],int n)的函数,其中n是数组a的大小

分别调用max()和min()函数求出a中的最大值和最小值,并返回给main()函数输出。

int max(int a[], int n)
{
   int tmp = a[0];
   for (int i = 0; i!=n; ++i)
       if (tmp < a[i])
           tmp = a[i];
   return tmp;
}
int min(int a[], int n)
{
   int tmp = a[0];
   for (int i = 0; i!=n; ++i)
       if (tmp > a[i])
           tmp = a[i];
   return tmp;
}


整个程序:

#include <stdio.h>
#include<stdlib.h>
int max(int a[], int n)
{
    int tmp = a[0];
    for (int i = 0; i!=n; ++i)
        if (tmp < a[i])
            tmp = a[i];
    return tmp;
}
int min(int a[], int n)
{
    int tmp = a[0];
    for (int i = 0; i!=n; ++i)
        if (tmp > a[i])
            tmp = a[i];
    return tmp;
}
int main()
{
    int *num = 0, len=0;
    printf("请输入数的个数:");
    scanf("%d",&len);
    num = (int *)malloc(sizeof(int)*len);
    printf("请输入所有的数:");
    for (int i = 0; i!=len; ++i)
        scanf("%d",&num[i]);
    printf("最大值为%d\n",max(num, len));
    printf("最小值为%d\n",min(num, len));
    return 0;
}

如果是C++,就这样:

#include <iostream>
using namespace std;
int max(int a[], int n)
{
    int tmp = a[0];
    for (int i = 0; i!=n; ++i)
        if (tmp < a[i])
            tmp = a[i];
    return tmp;
}
int min(int a[], int n)
{
    int tmp = a[0];
    for (int i = 0; i!=n; ++i)
        if (tmp > a[i])
            tmp = a[i];
    return tmp;
}
int main()
{
    int *num = 0, len=0;
    cout << "请输入数的个数:";
    cin >> len;
    num = new int[len];
    cout << "请输入所有的数:";
    for (int i = 0; i!=len; ++i)
        cin >> num[i];
    cout << "最大值为" << max(num, len) << endl;
    cout << "最小值为" << min(num, len) << endl;
    delete [] num;
    return 0;
}

追问

那有没有流程图啊

追答

流程图……这么简单的东西还要画流程图啊……
我前几天重装系统了,visio没装,你自己画不行吗……
就是先让tenp等于数组第一个元素,然后从数组第二个元素开始往后找,如果比temp大就把它赋给temp

追问

我不懂怎嘛安排流程,可以大概讲解一下吗

追答

首先是开始,往下是temp = a[0];

然后是判断,就是四边形,里面写i<n

右边直接一根箭头指向下面的结束,线上写N;

往下一根箭头指向另一个判断,里面写temp>a[i],往下走是Y,下面i++;

往右跳过I++的是N,最后都回到上面的判断i<n处就行了……

表达能力欠佳……

你试试这个……

大概就是这样……

追问

VisualC++ 6.0的c语言软件怎么运行不出来,有好几个错误

追答

我都截图给你看了……说明代码是没问题的啦,你看看什么错误噻,不会是"弄成了“吧,还是,弄成了, ???

追问

追答

你把代码的截图遮住了……你没改我写的就绝对没错!

肯定是你乱改了,又没改对……

追问

没改,复制过去的,可能是软件问题吧,谢啦

追答

.c………….cpp会死啊……

要不你改成cpp吧……

你们学校难道交的全是.c文件吗,就算是学C一般也是写.cpp啊


这是c文件的问题……

改成这样就行了:

#include <stdio.h>
#include<stdlib.h>

int Max(int a[],int n)
{
    int tmp = a[0],i;
    for (i = 0; i!=n; ++i)
        if (tmp < a[i])
            tmp = a[i];
    return tmp;
}
int Min(int a[], int n)
{
    int tmp = a[0],i;
    for (i = 0; i!=n; ++i)
        if (tmp > a[i])
            tmp = a[i];
    return tmp;
}
int main()
{
    int *num = 0, len=0,i;
    printf("请输入数的个数:");
    scanf("%d",&len);
    num = (int *)malloc(sizeof(int)*len);
    printf("请输入所有的数:");
    for (i = 0; i!=len; ++i)
        scanf("%d",&num[i]);
    printf("最大值为%d\n",Max(num, len));
    printf("最小值为%d\n",Min(num, len));
    return 0;
}

这下总行了吧。。。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-01

/*

38 45 21 8 90 32 46 10 66

max = 90

min = 8

Press any key to continue

*/

#include <stdio.h>

int max(int a[], int n) {
int i,max = a[0];
for(i = 1; i < n; ++i)
if(max < a[i]) max = a[i];
return max;
}

int min(int a[], int n) {
int i,min = a[0];
for(i = 1; i < n; ++i)
if(min > a[i]) min = a[i];
return min;
}

int main() {
int a[] = {38,45,21,8,90,32,46,10,66};
int i,n = sizeof(a)/sizeof(a[0]);
for(i = 0; i < n; ++i)
printf("%d ",a[i]);
printf("\nmax = %d\n",max(a,n));
printf("min = %d\n",min(a,n));

return 0;
}

求解:分别编写求数组a中最大值max(int a[],int n)和最小值min(int a...
int max(int a[], int n) { int tmp = a[0]; for (int i = 0; i!=n; ++i) if (tmp < a[i]) tmp = a[i]; return tmp; } int min(int a[], int n) { int tmp = a[0]; for (int i = 0; i!=n; ++i) if (tmp > a[i]) tmp = a[i]; return tmp; } int mai...

求解:分别编写求数组a中最大值max(int a[],int n)和最小值min(int a...
max(num, len)); printf("最小值为%d\\n",min(num, len)); return 0;}如果是C++,就这样:include <iostream>using namespace std;int max(int a[], int n){ int tmp = a[0]; for (int i = 0; i!=

(1)分别编写求数组a中最大值max(int a[],int n)和最小值min(int a...
include <stdio.h>int max(int a[], int n){ int i, m=a[0]; for(i=1; i<n; i++) if (a[i]>m) m = a[i]; return m;}int min(int a[], int n){ int i, m=a[0]; for(i=1; i<n; i++) if (a[i]<m) m = a[i]; ret...

分别编写求数组a中最大值max(int a[],int n)和最小值min(int a[],int...
for (int i = 0; i!=n; ++i)if (tmp < a[i])tmp = a[i];return tmp;} int min(int a[], int n){ int tmp = a[0];for (int i = 0; i!=n; ++i)if (tmp > a[i])tmp = a[i];return tmp;} int main(){ int *num = 0, len=0;cout << "请输入数的个...

分别编写求数组a中最大值max(int a[],int n)和最小值min(int a[],int...
int max(int a[], int n){ int result = 0;for (int i=0; i<n; ++i){ if (a[i] > result){ result = a[i];} } return result;} int min(int a[], int n){ int result = 0;for (int i=0; i<n; ++i){ if (a[i] < result){ result = a[i];} } return ...

分别编写求数组a中最大值max(int a[],int n0和最小值min(int a[],int...
return max;} int min(int a[],int n0){ int i,min=a[0];for(i=1;i<n0;++i){ if(a[i]<max) max=a[i];} return min;} int main(){ int a[10]={9,7,6,1,4,8,2,3,0,5};printf("数组的最大值为:%d\\n",max(a,10));printf("数组的最小值为:%d\\n",min(...

定义一个函数max,函数功能为求出数组a中的最大值,在主函数中输入10个...
完整的代码如下,函数形式输出:include <stdio.h>#include <string.h>void max(int i[]){int max;max = i[0];for(int a = 1;a<10;a++)if(max<i[a]) max=i[a];printf("\\n最大数是:%d\\n\\n",max);} int main(){int i[20];printf("求最大数,请输入 10 个数,空格...

【c语言】编写程序,求数组a中前n个元素的最大值max、最小值min及平均值...
是前n个元素么?main(){ int i=n,sum=0;max=a[0];min=a[0];for(i=0;i<n;i++){ sum+=a[i]; \/\/求和 max=(max>a[i])?max:a[i];min=(min<a[i])?min:a[i];} avg=sum\/n;}

分别画出三个函数流程图编求数组a中最大值和最小值的函数,其中n是数组a...
int max(int a[], int n){ int tmp = a[0];for (int i = 0; i!=n; ++i)if (tmp < a[i])tmp = a[i];return tmp;} int min(int a[], int n){ int tmp = a[0];for (int i = 0; i!=n; ++i)if (tmp > a[i])tmp = a[i];return tmp;} int main(){ ...

用java编程求数组中的最大值和最小值
a { public static void main(String args[]){ int a[]={84,40,16,3,10,49,28,76,94,70};int n;int min=a[0];int i;int max=a[0];for(n=0;n<=9;n++){ if(max<a[n])max=a[n];} for(i=0;i<=9;i++){ if(min>a[i])min=a[i];} System.out.print("max="...

相似回答