c语言编程n个数找最大值的简单介绍

发布时间:2022-11-22

本文目录一览:

  1. 怎样用C语言编出在n个数里找最大值的程序?
  2. 求c语言程序:用一个函数求N个数的最大值和最小值。。。
  3. C程序:找N个数中最大值

怎样用C语言编出在n个数里找最大值的程序?

找最大的值

max = 0;
for(int i = 0; i < n; i++) if(max < a[i]) max = a[i]; 
printf("%d", max);

找最小的值

min = 100;
for(int i = 0; i < n; i++) if(min > a[i]) min = a[i]; 
printf("%d", min);

找某个值

scanf("%d", value);
for(int i = 0; i < n; i++) if(a[i] == value) {printf("%d", i); break;}

求c语言程序:用一个函数求N个数的最大值和最小值。。。

#include<stdio.h>
int max(int n)
{
    int i, x, f;
    scanf("%d", &f);
    for(i = 1; i < n; i++)
    {
        scanf("%d", &x);
        if(x > f) f = x;
    }
    return f;
}
int main()
{
    int n;
    printf("有几个数:");
    scanf("%d", &n);
    printf("其中最大的数是:%d\n", max(n));
    return 0;
}
#include<stdio.h>
int min;
int maxmin(int n)
{
    int i, x, f;
    scanf("%d", &f);
    min = f;
    for(i = 1; i < n; i++)
    {
        scanf("%d", &x);
        if(x > f) f = x;
        else if(x < min) min = x;
    }
    return f;
}
int main()
{
    int n, mm;
    printf("有几个数:");
    scanf("%d", &n);
    mm = maxmin(n);
    printf("其中最大的数是:%d\n最小的数是:%d\n", mm, min);
    return 0;
}

C程序:找N个数中最大值

第一个错误:

for(i = 1; i <= n; i++) scanf("%d", &b[i]);

C语言的下标是从 0n-1 的,这里错了,应该是:

for(i = 0; i < n; i++) scanf("%d", &b[i]);

第二个错误:

int A(int a, int b[])

这个函数你想实现什么功能?嵌套返回最大值吗? 如果不是有要求必须采用嵌套,建议这样做:

int A(int a, int b[]) // 输入a:数组容量;输入b:数组序列
{
    int j, max_pos = 0;
    int MAX = b[0];
    for(j = 1; j < a; j++)
        if(b[j] > MAX) 
        {
            MAX = b[j]; 
            max_pos = j;
        }
    return max_pos;
}

如果一定要嵌套的话,可以这样做:

int A(int a, int b[]) // 输入a:数组容量;输入b:数组序列
{
    int max_pos;
    if(a == 1) 
    {
        int MAX = b[0]; 
        return 0;
    }
    max_pos = A(a - 1, b);
    if(MAX < b[a - 1]) 
    {
        MAX = b[a - 1]; 
        max_pos = a - 1;
    }
    return max_pos;
}

最后一个问题是打印: 由于是通过全局变量传递 MAX 值,所以要这样做:

i = A(n, b);
printf("%d %d", i, MAX);

不然会出现打印 MAX 的时候 A(n, b) 还没有执行的情况。